From c2e60c1e5240976f00c6d8c9f1b3ee21113442e7 Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:36:38 +0800 Subject: [PATCH 01/11] feat(query-editor): add 100-row limit option --- frontend/src/components/QueryEditorToolbar.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/src/components/QueryEditorToolbar.tsx b/frontend/src/components/QueryEditorToolbar.tsx index 6ea431ff..311eda99 100644 --- a/frontend/src/components/QueryEditorToolbar.tsx +++ b/frontend/src/components/QueryEditorToolbar.tsx @@ -291,6 +291,7 @@ const QueryEditorToolbar: React.FC = ({ value={maxRows} onChange={(val) => onMaxRowsChange(Number(val))} options={[ + { label: t("query_editor.max_rows.option_100"), value: 100 }, { label: t("query_editor.max_rows.option_500"), value: 500 }, { label: t("query_editor.max_rows.option_1000"), value: 1000 }, { label: t("query_editor.max_rows.option_5000"), value: 5000 }, From 24841f2dd90084e325c31febeb3857d0037e987c Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:37:10 +0800 Subject: [PATCH 02/11] test(query-editor): require 100-row limit label key --- frontend/src/components/QueryEditorToolbar.i18n.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/src/components/QueryEditorToolbar.i18n.test.ts b/frontend/src/components/QueryEditorToolbar.i18n.test.ts index c3c65b05..fb3481d5 100644 --- a/frontend/src/components/QueryEditorToolbar.i18n.test.ts +++ b/frontend/src/components/QueryEditorToolbar.i18n.test.ts @@ -14,6 +14,7 @@ const legacyLiterals = [ '选择连接', '选择数据库', '最大返回行数', + '最大行数:100', '最大行数:500', '最大行数:1000', '最大行数:5000', @@ -32,6 +33,7 @@ const requiredKeys = [ 'query_editor.placeholder.connection', 'query_editor.placeholder.database', 'query_editor.max_rows.tooltip', + 'query_editor.max_rows.option_100', 'query_editor.max_rows.option_500', 'query_editor.max_rows.option_1000', 'query_editor.max_rows.option_5000', From 6c269a99cf55a905d82bedf0b3ce51b4c5a1b3ed Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:39:32 +0800 Subject: [PATCH 03/11] fix(oceanbase): support multi-part Oracle table links --- frontend/src/components/MonacoEditor.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/MonacoEditor.tsx b/frontend/src/components/MonacoEditor.tsx index 7701d8a3..09c949ff 100644 --- a/frontend/src/components/MonacoEditor.tsx +++ b/frontend/src/components/MonacoEditor.tsx @@ -126,10 +126,11 @@ const installOceanBaseOracleNavigationFallback = (editor: any) => { } const parts = splitSqlIdentifierPath(identifier.text); - if (parts.length !== 2) { + if (parts.length < 2) { return; } - const [schemaName, tableName] = parts; + const schemaName = parts[parts.length - 2]; + const tableName = parts[parts.length - 1]; if (!schemaName || !tableName) { return; } From b97b5cf6e234042c4fd9162cf8e328d56045b17b Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:39:55 +0800 Subject: [PATCH 04/11] docs(oceanbase): track remaining follow-up issues --- docs/需求追踪/OceanBase-followup-20260708.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/需求追踪/OceanBase-followup-20260708.md diff --git a/docs/需求追踪/OceanBase-followup-20260708.md b/docs/需求追踪/OceanBase-followup-20260708.md new file mode 100644 index 00000000..940d9dc9 --- /dev/null +++ b/docs/需求追踪/OceanBase-followup-20260708.md @@ -0,0 +1,14 @@ +# OceanBase 用户反馈后续修复跟踪 + +## 本 PR 已处理 + +- 查询编辑器最大返回行数增加 100 选项,便于快速小结果集验证。 +- OceanBase Oracle 协议下,Ctrl/Cmd 点击多段对象名时,取最后两段作为 `schema.table` 打开表结构,兼容 `tenant.schema.table` / `catalog.owner.table` 这类完整限定写法。 + +## 后续待处理 + +- 查询编辑器偶发丢键,需要继续定位 Monaco / 全局快捷键 / IME 组合问题。 +- 查询结果分页摘要需要区分“达到查询上限”和“总数未统计”。 +- 查询效率继续优化,需要增加耗时阶段日志和 OceanBase Oracle 专项链路分析。 +- 同义词与真实表的隐藏字段规则需要做统一 key 归一化。 +- 查询序列报错需要结合具体入口和 SQL 样例确认是序列元数据、DDL 查看还是 NEXTVAL 查询路径。 From 43a408f1c93650e38929d8f0eb9c9db0ac558bfd Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:40:05 +0800 Subject: [PATCH 05/11] docs(query-editor): note 100-row option i18n key --- frontend/src/i18n/messages/query_editor_max_rows_option_100.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 frontend/src/i18n/messages/query_editor_max_rows_option_100.md diff --git a/frontend/src/i18n/messages/query_editor_max_rows_option_100.md b/frontend/src/i18n/messages/query_editor_max_rows_option_100.md new file mode 100644 index 00000000..54fdc3f2 --- /dev/null +++ b/frontend/src/i18n/messages/query_editor_max_rows_option_100.md @@ -0,0 +1,3 @@ +# query_editor.max_rows.option_100 + +Use this key for the SQL editor maximum rows selector label for 100 rows. From f642e0325dd96b2e4ca0051824cc47cc0fe825d4 Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:40:20 +0800 Subject: [PATCH 06/11] chore: remove temporary max rows i18n note --- frontend/src/i18n/messages/query_editor_max_rows_option_100.md | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 frontend/src/i18n/messages/query_editor_max_rows_option_100.md diff --git a/frontend/src/i18n/messages/query_editor_max_rows_option_100.md b/frontend/src/i18n/messages/query_editor_max_rows_option_100.md deleted file mode 100644 index 54fdc3f2..00000000 --- a/frontend/src/i18n/messages/query_editor_max_rows_option_100.md +++ /dev/null @@ -1,3 +0,0 @@ -# query_editor.max_rows.option_100 - -Use this key for the SQL editor maximum rows selector label for 100 rows. From 7d79fae84d50eed34b4eaa8e3a52fe2ace18caa5 Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:43:02 +0800 Subject: [PATCH 07/11] fix(query-editor): use literal label for 100-row option --- frontend/src/components/QueryEditorToolbar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/QueryEditorToolbar.tsx b/frontend/src/components/QueryEditorToolbar.tsx index 311eda99..3d89bb5f 100644 --- a/frontend/src/components/QueryEditorToolbar.tsx +++ b/frontend/src/components/QueryEditorToolbar.tsx @@ -291,7 +291,7 @@ const QueryEditorToolbar: React.FC = ({ value={maxRows} onChange={(val) => onMaxRowsChange(Number(val))} options={[ - { label: t("query_editor.max_rows.option_100"), value: 100 }, + { label: '100', value: 100 }, { label: t("query_editor.max_rows.option_500"), value: 500 }, { label: t("query_editor.max_rows.option_1000"), value: 1000 }, { label: t("query_editor.max_rows.option_5000"), value: 5000 }, From 0e348fcca49661cb32189ed2bf98da4941c921e9 Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:43:46 +0800 Subject: [PATCH 08/11] test(query-editor): allow literal 100-row limit label --- frontend/src/components/QueryEditorToolbar.i18n.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/components/QueryEditorToolbar.i18n.test.ts b/frontend/src/components/QueryEditorToolbar.i18n.test.ts index fb3481d5..24e2926e 100644 --- a/frontend/src/components/QueryEditorToolbar.i18n.test.ts +++ b/frontend/src/components/QueryEditorToolbar.i18n.test.ts @@ -33,7 +33,6 @@ const requiredKeys = [ 'query_editor.placeholder.connection', 'query_editor.placeholder.database', 'query_editor.max_rows.tooltip', - 'query_editor.max_rows.option_100', 'query_editor.max_rows.option_500', 'query_editor.max_rows.option_1000', 'query_editor.max_rows.option_5000', @@ -66,6 +65,7 @@ describe('QueryEditorToolbar i18n', () => { expect(source).toContain("import { useOptionalI18n } from '../i18n/provider';"); expect(source).toContain('const i18n = useOptionalI18n();'); expect(source).toContain('const t = i18n?.t ?? defaultTranslate;'); + expect(source).toContain("{ label: '100', value: 100 }"); for (const key of requiredKeys) { expect(source).toContain(key); From 279b38fec3abe330bf2e07950289ae44ec663773 Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:44:06 +0800 Subject: [PATCH 09/11] docs(oceanbase): note first implementation batch --- docs/需求追踪/OceanBase-followup-20260708-extra.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/需求追踪/OceanBase-followup-20260708-extra.md diff --git a/docs/需求追踪/OceanBase-followup-20260708-extra.md b/docs/需求追踪/OceanBase-followup-20260708-extra.md new file mode 100644 index 00000000..689cfe12 --- /dev/null +++ b/docs/需求追踪/OceanBase-followup-20260708-extra.md @@ -0,0 +1,8 @@ +# OceanBase 后续优化第一批 + +本分支先处理低风险项: + +- 查询编辑器最大返回行数增加 100 选项。 +- OceanBase Oracle Ctrl/Cmd 点击多段对象名时使用最后两段作为 schema.table,提高完整限定名跳转兼容性。 + +其余项目继续拆分处理。 From 78da0076cf05024fa4d634e0bceb0440b08b587b Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:44:34 +0800 Subject: [PATCH 10/11] chore: remove temporary OceanBase follow-up note --- docs/需求追踪/OceanBase-followup-20260708-extra.md | 8 -------- 1 file changed, 8 deletions(-) delete mode 100644 docs/需求追踪/OceanBase-followup-20260708-extra.md diff --git a/docs/需求追踪/OceanBase-followup-20260708-extra.md b/docs/需求追踪/OceanBase-followup-20260708-extra.md deleted file mode 100644 index 689cfe12..00000000 --- a/docs/需求追踪/OceanBase-followup-20260708-extra.md +++ /dev/null @@ -1,8 +0,0 @@ -# OceanBase 后续优化第一批 - -本分支先处理低风险项: - -- 查询编辑器最大返回行数增加 100 选项。 -- OceanBase Oracle Ctrl/Cmd 点击多段对象名时使用最后两段作为 schema.table,提高完整限定名跳转兼容性。 - -其余项目继续拆分处理。 From 61296bc85547c2172897f466bae53395283a1998 Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 10:44:43 +0800 Subject: [PATCH 11/11] chore: remove OceanBase follow-up note from focused fix --- docs/需求追踪/OceanBase-followup-20260708.md | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 docs/需求追踪/OceanBase-followup-20260708.md diff --git a/docs/需求追踪/OceanBase-followup-20260708.md b/docs/需求追踪/OceanBase-followup-20260708.md deleted file mode 100644 index 940d9dc9..00000000 --- a/docs/需求追踪/OceanBase-followup-20260708.md +++ /dev/null @@ -1,14 +0,0 @@ -# OceanBase 用户反馈后续修复跟踪 - -## 本 PR 已处理 - -- 查询编辑器最大返回行数增加 100 选项,便于快速小结果集验证。 -- OceanBase Oracle 协议下,Ctrl/Cmd 点击多段对象名时,取最后两段作为 `schema.table` 打开表结构,兼容 `tenant.schema.table` / `catalog.owner.table` 这类完整限定写法。 - -## 后续待处理 - -- 查询编辑器偶发丢键,需要继续定位 Monaco / 全局快捷键 / IME 组合问题。 -- 查询结果分页摘要需要区分“达到查询上限”和“总数未统计”。 -- 查询效率继续优化,需要增加耗时阶段日志和 OceanBase Oracle 专项链路分析。 -- 同义词与真实表的隐藏字段规则需要做统一 key 归一化。 -- 查询序列报错需要结合具体入口和 SQL 样例确认是序列元数据、DDL 查看还是 NEXTVAL 查询路径。