Commit Graph
34 Commits
Author SHA1 Message Date
miracle eaad88cc80 fix(objects): refresh event editor on selection and fix docs-export manifest 2026-08-24 18:35:17 +08:00
miracle d8bc5153d2 feat(mysql): manage and edit MySQL events 2026-08-23 12:23:46 +08:00
miracle 3442acd52c feat(completion): optimize qualified SQL completion queries 2026-08-22 15:41:13 +08:00
miracle 8c2b232243 fix(metadata): bound cache maintenance and pool recovery 2026-08-19 11:10:12 +08:00
miracle e77b547cea fix(kafka): improve message browsing and topic navigation 2026-08-14 00:19:09 +08:00
miracle 745f24322f fix(editor): align manageGroups and execution-progress footers with p-0 dialog content 2026-08-10 23:45:42 +08:00
miracle 71ccb3d97d feat(execution): multi-database SQL execution with scoped targets 2026-08-09 14:24:10 +08:00
miracle c8c40ba839 fix(errors): unify backend error protocol and preserve db detail 2026-08-05 17:25:21 +08:00
miracle 605d20dd4f perf(export): optimize SQL export performance 2026-08-05 14:57:06 +08:00
miracle bcafc4a474 fix(query): preserve structured backend errors 2026-08-02 16:37:46 +08:00
miracle 0e414e638e fix(agent): recover JDBC connections after query timeouts 2026-08-01 01:17:49 +08:00
miracle 8adf802444 fix(kafka): support ZooKeeper broker discovery 2026-07-23 00:20:47 +08:00
miracle 0d57c39a78 perf(zookeeper): optimize connection initialization 2026-07-14 23:16:10 +08:00
miracle c81eda22b0 perf(sidebar): reduce schema tree memory usage 2026-07-13 22:19:59 +08:00
miracle 16e879e40e perf(query): optimize result loading and connection reuse 2026-07-12 11:18:52 +08:00
miracle 1a309b6b63 feat(editor): configure SQL variable syntax 2026-07-11 20:45:07 +08:00
miracle 3ff4f470f2 fix(mysql): reuse data tab client session 2026-07-10 10:56:48 +08:00
miracle 135d4e15db feat(sql): add support for @set variables in scripts and copy button 2026-07-09 00:34:51 +08:00
miracle c32d0b7d6e fix(duckdb): close worker process reliably 2026-07-08 20:31:02 +08:00
miracle 9288717ac4 fix(sql): ignore native SQL variables 2026-07-07 22:24:48 +08:00
miracle b118ca31ed [Feat]:实现SQL变量替换 (#2597) 2026-07-06 13:21:45 +08:00
miracle 4afc3297e1 feat(duckdb): add worker concurrency setting 2026-07-06 00:13:11 +08:00
miracle 454457f191 fix(duckdb): add worker process isolation 2026-07-04 23:43:22 +08:00
miracle 30b9460442 fix(dbx-core): improve duckdb query cancellation 2026-07-04 02:31:32 +08:00
miracle a0e9acce95 fix(ui): kafka agent icon contrast in dark theme 2026-07-03 21:14:31 +08:00
miracle 72a7207283 fix(kafka): improve mq admin compatibility 2026-07-02 12:58:33 +08:00
miracle 0c91fecf5d feat(editor): add table copy/paste keyboard shortcuts
* feat: add table copy/paste with configurable structure and data options

- Implement Navicat-style table copy/paste functionality
- Support multi-table selection and batch operations
- Configurable paste modes: structure+data (default), structure only, data only
- Backend: add build_copy_table_data_sql API (INSERT INTO ... SELECT)
- TreeItem.vue: copy/paste context menus, paste dialog with mode selection
- ObjectBrowser.vue: batch toolbar buttons, context menu, paste dialog
- Refactor TreeClipboard type to support multi-table entries
- Add i18n keys for all 7 locale files (en, zh-CN, zh-TW, ja, es, it, pt-BR)

* Fix table paste shortcuts

* Fix Kafka MQ sidebar detection

* Restrict table paste scope

* Support data copy for primary SQL databases
2026-07-01 12:49:37 +08:00
miracle 7cec4892bf feat(kafka): support Kafka MQ admin client 2026-06-30 17:01:24 +08:00
miracle de39c1662d feat: ZK 节点树改为真正懒加载 (#1987)
* feat: lazy load zookeeper nodes

* fix: preserve zookeeper focused path hierarchy
2026-06-27 15:02:09 +08:00
miracleandonceMisery d128604743 fix(connection): 修复数据库连接超时后无法可靠恢复的问题
* 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>
2026-06-26 21:41:56 +08:00
miracle 2759480331 [pip-01]: add connect pip docs
* pip: add connect pip docs

* pip: edit connect pip docs
2026-06-25 22:30:16 +08:00
miracle 9572a9e52d fix: inject deterministic ORDER BY for dedup query pagination (Doris/MySQL)
Problem: When exporting DISTINCT/GROUP BY query results from distributed
databases like Doris 2.1, LIMIT/OFFSET pagination without ORDER BY causes
duplicate rows across pages because tablet scan order varies between
independent query executions.

Fix: Detect dedup queries (DISTINCT, GROUP BY, HAVING) that lack an
ORDER BY clause and automatically inject a positional ORDER BY (1, 2, ..., N)
before applying LIMIT/OFFSET. Positional references work correctly with
aliases, expressions, CASE WHEN, subqueries, and aggregate functions.

Changes:
- Add dedup_projection_count_without_order_by() using sqlparser to detect
  dedup queries and count projection columns
- Add ormat_positional_order_by() to generate ORDER BY 1, 2, ..., N
- Modify dd_standard_limit() to accept dedup_projection_count and inject
  ORDER BY; wrap in subquery when original query already has LIMIT
- Update dd_outer_standard_limit() to accept an order_sql parameter
- Add 20 unit tests covering Doris, MySQL, PostgreSQL, aliases, expressions,
  subqueries, GROUP BY, UNION, and existing ORDER BY scenarios

All 1203 tests pass (61 in query_result_sql, 11 in query_result_export).
2026-06-25 22:14:08 +08:00
miracle 588ba3352d feat: stream query result CSV/XLSX exports
* docs: add query result streaming export design

* feat(core): stream query result exports

* feat: expose query result streaming export APIs

* feat(desktop): stream query result exports from grid

* fix: route query result export cancellation through its command

* fix: reduce query export batch size and cancel latency

* opt: del local test files
2026-06-24 21:18:11 +08:00
miracle 871fc57c52 [Enhance] add comments in SQL Server DDL output (#1017)
Thanks!
2026-06-10 22:49:42 +08:00