In the 'Bulk Edit Selection' dialog, submitting with an empty input now
sets every selected editable cell to SQL NULL instead of an empty string,
matching the field's 'Value, or NULL' placeholder. fillSelectionWithValue()
accepts string | null so null flows through to applyCellValue().
Co-authored-by: kkk000111999 <kkk000111999@users.noreply.github.com>
* feat(core): implement PIP-0001 database connection timeout recovery
- Add DbOperationBudget struct for unified execution budget model
- Add deadpool create/recycle timeout for PostgreSQL pools
- Add checkout_postgres_client helper replacing 14 bare pool.get() calls
with timeout + cancel token support
- Fix PostgreSQL TLS cancel: rebuild TLS connector from stored context,
fallback to NoTls on failure
- Add timeout to MySQL kill_query and kill_query_with_opts (5s)
- Extend is_connection_error to match deadpool pool timeout messages
- Unify keepalive default to 30s (was 60s Rust / 0s frontend mismatch)
- Inject PostgreSQL TCP keepalive params (idle=30s, interval=10s, retries=3)
- Inject MySQL tcp_keepalive=30s in OptsBuilder
- Make MySQL inactive_connection_ttl configurable from idle_timeout_secs
- Add stage-based structured logging for pool.checkout/health.check/cancel
- Store PostgresCancelContext in AppState for TLS cancel reconstruction
- Clean up cancel contexts on pool removal/drain
- Add unit tests for DbOperationBudget and pool timeout error detection
* fix(core): align timeout recovery with PIP-0001
* fix(core): handle timeout recovery review issues
* fix(core): complete connection timeout recovery
* fix(core): fall back postgres cancel connector build
* refactor: revert comment translations to English in connection.rs and query.rs
- Revert DbOperationBudget doc comments to English (query.rs)
- Revert PostgresCancelContext and TLS cancel comments to English (connection.rs)
- Keep Chinese error-matching strings in is_connection_error unchanged
---------
Co-authored-by: onceMisery <onceMisery@users.noreply.github.com>