2579 Commits
Author SHA1 Message Date
ericbyz 87f1432fc4 fix(import): preserve workbook selection when an Excel sheet is empty (#12738)
* fix(import): keep data sheets selectable when an Excel sheet is empty

* fix(import): scan past the preview window before judging an Excel sheet empty

Anchor the preview window at the first content row instead of stopping at
data_start_row + preview_limit, so a sheet whose only data sits beyond the
preview limit is no longer reported as an empty preview. The grid-size guard
now counts only the anchored window so a far first data row cannot falsely
trip MAX_FAST_PREVIEW_CELLS.

* fix(clippy): drop test-only transfer column name wrapper

resolve_transfer_target_column_names lost its last non-test caller in
7fdf16283, so the lib build fails the CI clippy job with dead_code. Fold
its four test call sites into resolve_transfer_target_column_names_or
with the source names as fallback.
2026-10-20 10:28:30 +08:00
lxk955 ba9ea06bbd feat(ai): add option to include query result previews in AI context (#12776)
* checkpoint: #12757 add includeQueryResult/excludeQueryResult option gating query-result previews in AI context (frontend setting + UI + i18n, Rust serde fields; tests pending)

* style: oxfmt reformat AiAssistant.vue + EditorSettingsDialog.vue (#12757)

* chore(i18n): fill ai query-result translations for 7 locales (#12757)

The i18n-autofill workflow failed on a truncated DeepSeek response before
pushing these; adding them manually so the autofill check passes.
2026-10-20 10:20:16 +08:00
dienaso e9639e6919 fix(sql-file): pin one session for the whole SQL file execution (Fixes #12160) (#12725)
* fix(sql-file): pin one session for the whole SQL file execution

Non-MySQL SQL file imports executed each statement through the shared pool, so a file-level BEGIN / COMMIT could span physical connections and leave an unfinished transaction idle in transaction. A later DROP TABLE or a second run then blocked on the leftover locks (#12160).

Pin a session-scoped pool for the whole file, pass its client_session_id to every statement, and release the pool (rolling back any open transaction) when the execution finishes, errors or is cancelled. MySQL keeps its existing pinned executor and manual transactions keep their session.

Verified on PostgreSQL 18: before the fix a file containing BEGIN; SELECT 1; left one idle-in-transaction connection; after the fix there are none, and the #12160 file runs twice with a DROP TABLE between runs.

* fix(sql-file): derive the pinned session from execution_id

The streaming Postgres-family test injects a SQLite pool under the base pool key; the executor now looks up a session-scoped key, so the test must register the stub there too. Deriving the session id from execution_id (the frontend's per-run batch id) makes the key predictable and keeps one session per execution. Add a test-only key helper and inject the stub under both keys.

* fix(sql-file): release the pinned session before restoring constraints

The catalog-level constraint restore runs on the shared pool. A file that leaves a transaction open (BEGIN, then an error or cancellation) keeps the pinned session's locks, so the restore's ALTER TABLE can wait until the query timeout. Close the session pool before the restore in both the content and multi-file paths, then restore constraints.

Add a live PostgreSQL regression test with skip_relational_constraints and a file that locks a table and then fails.
2026-10-20 10:17:59 +08:00
t8y2 9694ef2512 chore: refresh docs export bundle 2026-10-20 01:46:08 +08:00
zipgandzipg 76625c6ac5 fix(db2): use cursor pagination for query results (#12764)
* fix(db2): use cursor pagination for query results

* fix(ci): gate test-only transfer column helper

---------

Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
2026-10-20 00:11:41 +08:00
ordinary being 0fe5b902e9 fix(transfer): gate MySQL auto_increment sources by target type
统一校验目标数据库对自增列类型的支持。
2026-10-19 23:31:00 +08:00
t8y2 65a3e24aed style(transfer): apply cargo fmt and oxfmt to column case changes 2026-10-19 21:15:36 +08:00
t8y2 7fdf162838 feat(transfer): add uppercase column names option
Closes #12741
2026-10-19 20:51:41 +08:00
t8y2 fd3509bbd6 fix(transfer): map DATETIME to TIMESTAMP for Oracle-family targets 2026-10-19 20:51:40 +08:00
t8y2 48214aea9d fix(influxdb): show read-only measurement description for View DDL
Closes #12730
2026-10-19 20:51:40 +08:00
lxk955andzipg e327f5f6de fix(sql): use inclusive end columns
Co-authored-by: zipg <zipg@users.noreply.github.com>
2026-10-19 19:32:32 +08:00
Xsyl.way a18bae6672 fix(import): preserve current timestamp expressions in sql imports 2026-10-19 18:04:44 +08:00
t8y2 4d5faa7406 chore(rust): simplify boolean expressions for clippy 1.96 2026-10-19 16:25:44 +08:00
Lan-zk c7c266c309 perf(search): batch column fetch and multi-table probe 2026-10-19 15:17:58 +08:00
ordinary being d345c25f71 fix(transfer): narrow mysql auto-increment by target and skip defaults 2026-10-19 14:32:49 +08:00
jearhe 9944e1e04c feat(plugin-plan): add estimated plan support for huawei dws 2026-10-19 13:30:05 +08:00
lxk955 eea80fc31a fix(redis): scope standalone load more cursor to its connection 2026-10-19 13:29:40 +08:00
ordinary being 175c79f2ee fix(transfer): keep identity sources auto-increment on mysql targets 2026-10-19 11:58:45 +08:00
Czaku cad6ccb0cd feat(i18n): add Polish (pl-PL) localization 2026-10-19 04:03:41 +08:00
onenewcode daf41df76d fix(transfer): replace existing mysql schema objects during transfer 2026-10-19 02:53:07 +08:00
ordinary being 16755c7d6b fix(transfer): keep explicit auto-increment as PostgreSQL identity 2026-10-18 12:02:55 +08:00
dienaso 6e04b6a665 fix(transfer): split reused GaussDB table DDL into statements 2026-10-18 12:02:44 +08:00
lxk955 de0fbc681a fix(export): allow selecting and exporting non-table objects for Kingbase 2026-10-18 11:03:53 +08:00
lxk955 a7fb7aeff4 fix(gbase8s): strip NUL characters from column defaults and table DDL 2026-10-18 10:53:17 +08:00
lxk955 f04ceabac6 fix(doris,import): allow update-existing imports on unique-key tables 2026-10-18 00:43:55 +08:00
lxk955 00cbb87c5d feat(d1): support https proxy and custom ca for d1 and turso 2026-10-17 20:18:34 +08:00
lxk955 8a31da122c fix(dameng): include column comments in table ddl 2026-10-17 20:16:07 +08:00
Jarvis 268829afb2 fix(csv): count decimal significant digits across separator 2026-10-17 20:09:11 +08:00
lxk955 9174c6e265 feat(ai): support opencode 2 cli without pure flag 2026-10-17 17:46:06 +08:00
ZhongTai ab92129752 fix(schema): list databases and tables on mycat proxies 2026-10-17 15:59:04 +08:00
lxk955 05e0539a1e fix(dameng): skip identity insert for auto increment columns 2026-10-17 15:14:50 +08:00
弈秋 d12bafae30 fix(transfer): map oracle family booleans to number one 2026-10-17 15:14:38 +08:00
lxk955 f382082c76 feat(grid): copy sql deletes and inserts for selected rows 2026-10-17 13:37:49 +08:00
dienaso 25539c6e24 fix(transfer): drop opengauss storage options for pg targets 2026-10-17 13:23:25 +08:00
t8y2 a7d6b80e2c feat(gbase8s): split GBase 8s into its own dbType
Closes #12486
2026-10-16 21:33:43 +08:00
xiSage 042b02d953 feat(gbase8c): add GBase 8c connection type via agent and vendor JDBC 2026-10-16 18:05:53 +08:00
HighBigSky 4722a49ab9 feat(connection): auto disconnect idle connections 2026-10-16 17:36:42 +08:00
lxk955 e3af7bc3a3 fix(duckdb): detect and export computed column types 2026-10-16 17:35:14 +08:00
圆头圆脑 ca6d0c22e7 feat(rocketmq): support proxy grpc sending with optional tls 2026-10-16 16:44:46 +08:00
t8y2 4fcb0a120a chore(docs): refresh docs export bundle for token font order 2026-10-16 16:13:18 +08:00
Sowevo 49f3ded4dc fix(transfer): map datetime to timestamp for h2 targets 2026-10-16 15:39:53 +08:00
t8y2 f441d781ec feat(transaction): configurable manual transaction idle timeout
Add a per-connection manual_transaction_timeout_secs (default 300s,
30-86400s) honored by every idle-rollback path. When a session that may
hold uncommitted work expires, stop and show the rollback notice instead
of replaying the statement into a fresh transaction; proven read-only
sessions still restart silently. Error and notice texts no longer
hard-code five minutes.
2026-10-16 13:52:24 +08:00
_Mr丶s ゛😁® 8334249d5d feat(snippets): add scheduled auto upload 2026-10-16 13:26:12 +08:00
_Mr丶s ゛😁® a85f6528f8 feat(ai): add magpie config import entry 2026-10-16 13:26:01 +08:00
Andrew 7510e91d9a fix(gaussdb): hide system columns from index metadata 2026-10-16 12:00:23 +08:00
lxk955 668bf6f02c feat(backup): add permanent retention for scheduled backups 2026-10-16 09:57:01 +08:00
Andrew aae04246c4 feat(gaussdb): apply query dop hint to count and page sql 2026-10-15 23:00:55 +08:00
efeire 61d3c5b3f6 feat(oracle): add constraint and index editing 2026-10-15 20:29:10 +08:00
Xsyl.way 326ee4f96d perf(gaussdb): skip doomed modern metadata tier 2026-10-15 20:27:31 +08:00
Jeff 50f5d1698d fix(export): write postgres arrays as array literals 2026-10-15 19:29:26 +08:00