15 Commits
Author SHA1 Message Date
zipgandzipg 687b988b7d fix(mysql): 显式配置的 group_concat_max_len 稳定生效并补充连接表单提示 (#9582)
DBX 连接 MySQL 时会执行 SET SESSION group_concat_max_len = 1048576,
避免 GROUP_CONCAT 结果被静默截断(#2775)。但当用户在 URL 参数里用
Connector/J 语法 sessionVariables=group_concat_max_len=... 显式指定值时,
内置语句与用户语句的执行先后取决于底层驱动,覆盖行为不具备确定性;
连接表单也没有任何提示,导致按服务端配置排查问题时被误导(#9412)。

- 新增显式覆盖检测:解析 sessionVariables 中的赋值目标,命中
  group_concat_max_len(含大小写、@ 前缀、session 限定)时不再下发内置的
  SET SESSION,用户/服务端的值始终生效;@user 变量与 @@global. 赋值不影响
  默认行为。
- 连接表单 URL 参数下方为 MySQL 增加提示,说明可用的覆盖写法
  (sessionVariables=group_concat_max_len=@@global.group_concat_max_len 即
  完全跟随服务端配置),并补齐 10 个语言包文案。

Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
2026-09-19 15:23:16 +08:00
zipgandzipg 74c275b2ce fix(sqlserver): 表结构支持查看约束(主键/唯一/外键/检查/默认值) (#9581)
SQL Server 连接的「编辑表结构」面板里只有 DDL/字段/索引/外键/触发器,
没有「约束」页签;用户无法查看某张表的约束。

list_constraints 在 SQL Server 驱动中完全缺失:驱动侧没有对应实现,
dbx-core 的 list_constraints_core 没有 SQL Server 分支,直接落到默认的
空数组;前端 tableMetadataCapabilities 也没有声明 sqlserver 支持,
因此即使是空页签也不会渲染。

- dbx-drivers 新增 list_constraints,用一条 UNION ALL 查询汇总
  sys.key_constraints(PK/UNIQUE)、sys.foreign_keys(含引用库表列、
  ON UPDATE/DELETE 动作、is_not_trusted)、sys.check_constraints、
  sys.default_constraints;列名用 FOR XML PATH('') 聚合,兼容 SQL Server
  2008(无 STRING_AGG)
- list_constraints_core 增加 SQL Server 分支与链接服务器早退
- tableMetadataCapabilities 为 sqlserver 打开 constraints,前端显示「约束」页签
- 新增单测覆盖 SQL 形态与列名拆包,并补充前端能力断言

Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
2026-09-19 13:31:45 +08:00
Jinpy 2b15327de3 feat(plugins): hand SOCKS5 transport proxy routes to connections 2026-09-19 09:47:15 +08:00
zipg 00c4d30453 fix(agent): keep offline import resilient per item with os error detail 2026-09-19 00:22:18 +08:00
zipg e0e6a696b0 fix(kingbase): prefer factory default test database for empty connections 2026-09-19 00:21:57 +08:00
zipg c3d4061868 fix(agents): resolve system java from JAVA_HOME before PATH 2026-09-19 00:21:43 +08:00
zipg 68f905e0c2 fix(elasticsearch): retry /_sql with PUT on 405 for legacy clusters 2026-09-18 22:48:27 +08:00
zipg 2b075625f2 fix(mysql): stop single-statement BEGIN pinning autocommit read snapshot 2026-09-18 22:47:15 +08:00
t8y2 24179cb45d fix(postgres): decode text-protocol booleans as typed values 2026-09-18 20:15:48 +08:00
Loc Nguyen f1e0f54a2b feat(mongodb): support db.getSiblingDB() 2026-09-18 15:38:53 +08:00
大峰 b44e1080a8 feat(editor): semantic column navigation for CTE columns 2026-09-18 15:06:37 +08:00
Loc Nguyen 7c51454bfd feat(mongodb): support db.createCollection() and db.dropDatabase() 2026-09-18 15:06:29 +08:00
Loc Nguyen 2db28fc236 feat(mongodb): support db.collection.renameCollection() 2026-09-18 14:12:39 +08:00
jearhe 392138f59a refactor(sqlserver): resolve object source via OBJECT_ID identity 2026-09-18 14:12:12 +08:00
t8y2 bc00431834 feat(core): split foundational capabilities into dedicated crates 2026-09-18 13:00:56 +08:00