Skip to content

Feature:支持清除 Oracle 兼容数据库的查询模式#3459

Merged
t8y2 merged 3 commits into
t8y2:mainfrom
zipg:codex/fix-clear-query-schema
Jul 15, 2026
Merged

Feature:支持清除 Oracle 兼容数据库的查询模式#3459
t8y2 merged 3 commits into
t8y2:mainfrom
zipg:codex/fix-clear-query-schema

Conversation

@zipg

@zipg zipg commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

改动内容

  • 在 Oracle、达梦和 OceanBase Oracle 的查询模式列表中,悬浮当前选中项时将对勾切换为清除图标,点击或按 Enter 可恢复未显式选择模式的状态
  • 清除模式时按顺序关闭结果游标和查询客户端会话,避免数据库连接继续沿用此前的会话级 schema
  • 查询执行和执行计划会等待该 tab 的会话重置完成,避免清除 schema 后立即执行时复用旧会话
  • 使用独立能力白名单限制适用范围,MySQL、PostgreSQL、SQL Server、通用 JDBC 及其他选择器保持原有行为
  • 补充能力范围、会话释放和并发时序测试

验证

  • pnpm typecheck
  • pnpm vitest run --maxWorkers=4:387 个测试文件、3110 项测试通过
  • pnpm build
  • 达梦真实实例验证:登录默认模式为 DBX_TEST,切换到 TEST 后会话模式变为 TEST;关闭并重建查询会话后恢复为 DBX_TEST

@t8y2 t8y2 left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request changes: 清除 schema 后的会话重置需要和下一次查询执行串行化。

updateSchema 目前通过 void closeResultSession(...)void closeClientConnectionSession(...) 发起异步关闭,然后立即返回并清空 schema。如果用户马上执行查询,后端仍可能在关闭请求移除旧 pool 前,使用相同的 tab client session ID 取得并复用旧会话。Oracle 的 CURRENT_SCHEMA 在整个 session 中持续有效,因此这条查询仍可能在之前选择的 schema 下执行。

请确保该 tab 的下一次查询会等待 session reset 完成,并补充一个回归测试:阻塞 close-client-session 响应,清除 schema 后立即执行查询,确认 execute-multi 只能在关闭完成后发出。

@zipg
zipg force-pushed the codex/fix-clear-query-schema branch from b7f4626 to cc4b98b Compare July 14, 2026 15:54
@zipg

zipg commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

已按审核意见修复,提交:cc4b98bb

  • 清除白名单数据库的查询 schema 时,为 tab 记录待完成的会话重置 Promise。
  • 重置过程先关闭结果游标,再关闭 tab 及后台查询使用的客户端会话。
  • 普通查询和执行计划都会在调用后端前等待该 tab 的重置完成。
  • 新增竞态回归测试:挂起 close-client-session 响应后立即执行查询,确认关闭完成前不会发出 execute-multi,释放响应后才执行。

验证结果:

  • pnpm typecheck
  • 定向测试:107 项通过
  • 全量测试:387 个测试文件、3110 项通过
  • 已变基到最新 main

@zipg
zipg requested a review from t8y2 July 14, 2026 16:09
@t8y2
t8y2 merged commit 12b3c84 into t8y2:main Jul 15, 2026
7 checks passed
@t8y2

t8y2 commented Jul 15, 2026

Copy link
Copy Markdown
Owner

Thanks for the contribution! Merged in 12b3c84, will be released in the next version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants