BEGIN TRANSACTION / COMMIT / ROLLBACK must not go through sp_executesql
(client.execute) because SQL Server raises error 266 when @@TRANCOUNT
changes inside sp_executesql. Route them through simple_query instead.
Add a 512MB maximum response size limit to read_agent_line to prevent
unbounded memory allocation that could cause the process to SIGABRT
when the agent returns an unexpectedly large response.
Ref: #345
Previously, aggregation queries (date_histogram, terms, etc.) with
`size: 0` returned empty results because the empty hits array was
matched but contained no documents, ignoring the aggregations data.
Add two offline import methods for users behind corporate firewalls:
- ZIP offline bundle: import all drivers + JRE from a single ZIP file
- Single JAR import: import individual driver JARs per database type
R2 CDN cache inconsistency caused hash mismatches when registry
updated before jar files. Remove sha256 verification entirely —
the old field in registry JSON is silently ignored by serde.
OceanBase MySQL mode uses different collations for information_schema
tables, causing "Illegal mix of collations" when joining COLUMNS with
KEY_COLUMN_USAGE. Explicit COLLATE utf8mb4_general_ci resolves this.
Closes#337
Replace DatabaseMetaData API calls with direct queries against Oracle
data dictionary views (ALL_TABLES, ALL_TAB_COLUMNS, ALL_CONSTRAINTS etc.)
for connections using jdbc:oracle: URLs. Also sets Oracle-specific
connection properties (remarksReporting, restrictGetTables, etc.).
Allow users to quickly find tables by name in the export dialog,
useful when databases have many tables. Select/clear buttons now
operate within the filtered scope.
Parse DELIMITER directives (e.g., DELIMITER //, DELIMITER $$) so
stored procedures, functions, and triggers with internal semicolons
are kept as single statements. Disable PostgreSQL dollar-quoting
when a custom delimiter is active to avoid conflicts.
Thinking models like DeepSeek V4 Flash can exceed the 120s stream
timeout during long reasoning, causing truncated output and missing
answers. Increase stream timeout to 600s when thinking is enabled,
raise max_tokens floor to 8192, and bump reasoning display max-height.
Closes#326
Pending changes (dirty cells, new rows, deleted rows) are tracked by
sourceIndex into the current result array. When the query re-executes
(e.g. different WHERE clause or pagination), stale indices silently
point to different rows, causing wrong-row deletions on commit.
Closes#336 (partial)