Repository navigation
Releases: 0verme/dbx-plugin-plan-detective
Release list
Plan Detective v0.6.7
Plan Detective v0.6.7
更新内容
- 优化插件与 README 的产品描述,让用户更容易了解其用途和分析结果。
- 更新 DBX Store 与 GitHub Release 的安装说明。
能力范围
本版本仅包含 metadata 与文案更新,不改变功能逻辑。Plan Detective 仍分析 SQL 的预估执行计划(Estimated Plan),不新增 Actual Plan、EXPLAIN ANALYZE 或 SQL 自动优化能力。分析结果反映优化器估算,可作为排查线索,不代表实际运行表现。
GitHub Release 提供的 universal 插件包为未签名候选包。
Plan Detective v0.6.6
Plan Detective v0.6.6
本版本包含 Doris Estimated EXPLAIN 结构化解析,以及 OceanBase 4.2.5.7 MySQL 模式执行计划解析兼容修复。
新增与修复
- Doris Estimated EXPLAIN 文本计划进入结构化分析。
- DBX 返回
dbType=mysql且dbVersion明确包含 OceanBase 标识时,路由到独立的oceanbase-mysqlfamily,并复用 OceanBase JSON parser / normalizer。 - Native MySQL parser contract 保持不变;不根据 Raw Plan shape 猜测数据库 family。
验证
npm test:1253/1253 passed。npm run build:DBX_UI_BUILD_SUCCESS。- DBX CLI universal package preflight:成功。
- OceanBase 4.2.5.7 真实实例回放:NOT RUN;样本来自用户报告并已脱敏,内网验证待用户执行。
- 真实 Doris / DBX Desktop Host Smoke:NOT RUN。
兼容要求保持不变:DBX >=0.6.18、Host API ^1.2、权限 host.plans:read。本次发布 GitHub Release;DBX Store / 签名流程不在本次范围。
Plan Detective v0.6.5
Plan Detective v0.6.5
v0.6.5 将 QuestDB Estimated EXPLAIN 文本计划纳入结构化分析,基于 DBX Host 返回的 format: text / mode: estimated 计划,不执行用户 SQL。
新增
- QuestDB 文本计划解析、统一计划树与 Node Inspector 展示;保留 operator properties、未知 operator 与原始计划证据。
- Frame / Interval relation access 以保守语义计数;PageFrame / Row cursor 不重复计为扫描。
- QuestDB 未报告的 estimated rows 与 PostgreSQL cost 保持缺失,不推导这些数值或据此生成 Findings / Hotspots。
兼容与边界
- DBX
>=0.6.18,Host API^1.2,权限host.plans:read。 - 仅支持 Estimated text plan;不支持 Actual Plan / autotrace,不建立数据库连接、不读取 credential。
- 测试数据包括官方文档转录与 synthetic fixtures;没有真实本地 QuestDB capture。
验证
npm test:1193/1193 passed。npm run build:DBX_UI_BUILD_SUCCESS。- DBX CLI universal package preflight 成功;GitHub Release workflow 将生成并附加发布包与 metadata。
- 真实 QuestDB / DBX Desktop Host smoke:NOT RUN(当前环境不可用)。
DBX Store 更新与签名是独立流程,本次仅发布 GitHub Release。
Plan Detective v0.6.4
亮点
- Dameng Estimated Plan 结构化解析:支持 DBX 当前返回的 Dameng 原生
EXPLAIN文本与format: "text"输出。 - 原生 tuple 与树结构:解析
[cost, rows, bytes-per-row],按#显示列恢复计划树,operation id 仅用于证据与 predicate 关联。 - 未知内容安全保留:未知 operator/detail 保留原文和完整子树;缺失字段 fail-soft,多根、损坏输入与 runtime/autotrace marker fail-closed。
- 代价语义隔离:Dameng
cost保留在engineSpecific.dameng,不映射为 PostgreSQLstartupCost/totalCost;共享规则与热点只使用可靠 rows 信号。 - 共享分析链路:接入 Metrics、既有 Rules、Hotspots、Plan Tree、Node Inspector、i18n 与 UI;新增 1 个 official 与 6 个 synthetic fixture / golden。
验证
npm test:1128/1128 passednpm run test:update-goldens:72 个 golden unchangednpm run build:DBX_UI_BUILD_SUCCESSdbx-plugin package .:unsigned universal candidate 成功,manifest version0.6.4
本版本仅支持 Estimated Plan;不支持 Actual Plan、EXPLAIN ANALYZE 或 autotrace。当前环境无真实 Dameng 实例与 DBX Desktop Host,Host Smoke 未运行。该版本不更新 DBX Store。
Plan Detective v0.6.3
亮点
- Oracle DBMS_XPLAN Estimated Plan 结构化解析:支持 DBX 当前返回的
DBMS_XPLAN.DISPLAY(..., 'TYPICAL +PREDICATE')、format: "text"输出。 - 按 Operation 缩进恢复计划树:不使用 Oracle
Id推断父子关系,保留未知 operation 与完整子树。 - Oracle 原生证据保留:
Rows、Bytes、Cost、%CPU、Time、predicate marker / text、Plan hash 与未知字段进入engineSpecific.oracle。 - 代价语义隔离:Oracle
Cost不映射为 PostgreSQLstartupCost/totalCost,共享 cost attribution 为not-applicable。 - 共享分析链路:接入 Metrics、既有 Rules、Hotspots、Plan Tree、Node Inspector 与中英文 Hotspot 文案。
验证
npm test:1066/1066 passednpm run test:update-goldens:65 个 golden unchangednpm run build:DBX_UI_BUILD_SUCCESSdbx-plugin package .:unsigned universal candidate 成功,manifest version0.6.3
本版本仅支持 Estimated Plan;不支持 Actual Plan、DISPLAY_CURSOR 或 ALLSTATS LAST。当前环境无 Oracle 实例与 DBX Desktop Host,Host Smoke 未运行。该版本尚未更新 DBX Store。
Plan Detective v0.6.2
亮点
- OceanBase Oracle 结构化执行计划(Phase 3.2 / PR #46):OceanBase Oracle 的 Estimated Plan(宿主
dbType: "oceanbase-oracle"、format: "json",即EXPLAIN FORMAT=JSON的解码结果)从 Raw Plan 升级为结构化分析。按CHILD_<n>递归构建计划树(ID/OPERATOR/NAME/EST.ROWS/EST.TIME(us)/COST/output),进入统一的 NormalizedPlan → Metrics → Hotspots / Findings → Plan Tree / Node Inspector 链路。 - 跨数据库抽象得到验证:本轮没有为 OceanBase Oracle 修改公共 IR、Metrics 引擎或规则引擎,也没有新增数据库条件分支(
database === "oceanbase-oracle"仅出现在 2 处明确的 engine-aware 位置:Hotspot 的source标签与代价说明文案)。NormalizedPlan字段、Metrics 语义与 3 条既有规则均未变化。 - 代价语义保持诚实:
EST.TIME(us)/COST属于 OceanBase 自己的估算模型,不映射到 PostgreSQL 语义的startupCost/totalCost;costAttribution.status = "not-applicable",不生成任何代价占比信号。 - Hotspot / Findings 保持克制:不新增 OceanBase 专属规则,直接复用既有行数信号(
large-sequential-scan/nested-loop-amplification,source标为EST.ROWS);expensive-sort因无 PostgreSQL 代价数据保持静默;文案继续强调 Estimated Plan ≠ runtime fact。 - Fail-soft:未知算子保留节点、原始标签与完整子树;未知 / 未验证的扩展键(
filter/access/range_key/ ...)原样保留在engineSpecific.extra,不提升为中立谓词;缺字段为null;根对象不是计划节点时才MALFORMED_PLAN。 - 降级路径:宿主
plan_not_json降级为format: "text"时,OceanBase Oracle 仍只展示 Raw Plan(UNSUPPORTED_FORMAT),不猜文本计划。 - 支持矩阵:
PostgreSQL / MySQL / SQL Server / OceanBase Oracle = Structured;Oracle / Doris / Dameng / QuestDB = Raw Plan。
安装
- 下载下方
.dbxp(universal,未签名 review candidate)。 - 打开 DBX → 插件中心 → 第三方与开发者选项,开启「允许安装未签名开发包」。
- 选择下载的
.dbxp安装。
运行要求:DBX >=0.6.18(Host API ^1.2,权限 host.plans:read)。
验证
npm test:1019/1019 passed(基线 870/870,新增 149:OceanBase parser / normalizer / fixture+golden / analysis / view-model)。npm run build:DBX_UI_BUILD_SUCCESS;ui/发布产物已随源码重新构建入库。dbx-plugin package .:本地 unsigned universal candidate 生成成功;既有 48 个 golden(PostgreSQL / MySQL / SQL Server)未变化。- Fixture:新增 12 个 OceanBase Oracle fixture + golden,其中 1 个为 OceanBase 官方 Oracle 模式
EXPLAIN文档(V4.3.5)中的 JSON 示例,11 个为 synthetic(本机无 OceanBase 实例,provenance 见fixtures/oceanbase-oracle/README.md;未在真实 OceanBase 上回放)。 - Host Smoke:NOT RUN —— 真实 DBX + Windows 安装与 OceanBase Oracle 计划验证由维护者手工执行。
说明
- 本包为未签名候选包;不包含 Actual Plan、Plan Diff、AI 接入、数据库 Driver,也不包含 Oracle / Dameng / Doris / QuestDB 的结构化 parser。
- 兼容性:
manifest.json仅版本号变化(0.6.1 → 0.6.2),engines与permissions未变化;既有 PostgreSQL / MySQL / SQL Server 行为与 golden 未变化。 - 人工验收建议 SQL:
SELECT * FROM t1, t2 WHERE t1.c2 = t2.c2 AND t2.c1 > 4;、SELECT COUNT(*) FROM t1;、SELECT * FROM t1 WHERE c1 = 1;(配合索引可验证TABLE RANGE SCAN)。
Plan Detective v0.6.1
亮点
- Hotspot 可读性增强(Issue #42 / PR #43):每个 Hotspot reason 在保留原始 node label / statement / code / source / Evidence 的同时,新增
zh-CN/en自然语言摘要与克制的 caveat;未知 reason code 优雅回退,不隐藏 Hotspot,也不修改检测规则、阈值与 severity 语义。 - 复制 AI 分析提示词(Issue #42 / PR #43):分析成功后可在成功状态栏一键复制本地生成的结构化 Prompt(Database Context / SQL / Plan Summary / Findings / Hotspots / Evidence 节选 + 语义约束与回答结构),由用户自行粘贴到外部 AI 工具。优先走 DBX
host.copy,降级navigator.clipboard,失败有明确反馈。 - 隐私边界:插件不调用任何 AI 服务、不新增网络请求、不新增 API Key / 模型配置,也不自动发送 SQL / Plan;仅本地字符串打包 + 本地复制。
安装
- 下载下方
.dbxp(universal,未签名 review candidate)。 - 打开 DBX → 插件中心 → 第三方与开发者选项,开启「允许安装未签名开发包」。
- 选择下载的
.dbxp安装。
运行要求:DBX >=0.6.18(Host API ^1.2,权限 host.plans:read)。
验证
npm test:870/870 passed;npm run build:DBX_UI_BUILD_SUCCESS。ui/发布产物已随源码重新构建入库。- Host Smoke:NOT RUN —— 真实 DBX + Windows 安装与 Issue #42 功能(Hotspot 人话解释 / 复制 Prompt / clipboard fallback)验证由维护者手工执行。
说明
- 本包为未签名候选包;不包含 AI API 集成、SQL 自动改写、自动索引建议或 SQL 脱敏。
- DBX Store 收录:PR #112(v0.5.4)已签名发布;Release Sync 注册 PR #132 仍等待 maintainer review。
Plan Detective v0.6.0
亮点
- SQL Server ShowPlanXML 结构化解析(Phase 3.1):DBX Host 返回
format: "xml"的 Estimated Plan 现在进入结构化分析,支持 Plan Tree / Metrics / Hotspots / Findings,并保留 ShowPlanXML 专有代价与对象信息(PR #37)。 - MySQL
data_read_per_join修复(Issue #38):支持 MySQLhuman_readable_num_bytes()的 data-size 格式(如"167K"/"1M"),按 1024 进制归一化为 byte 数值,真实 MySQL 计划不再出现PLAN PARSE FAILED(PR #39)。
安装
- 下载下方
.dbxp(universal,未签名 review candidate)。 - 打开 DBX → 插件中心 → 第三方与开发者选项,开启「允许安装未签名开发包」。
- 选择下载的
.dbxp安装。
运行要求:DBX >=0.6.18(Host API ^1.2,权限 host.plans:read)。
验证
npm test:835/835 passed;npm run build:DBX_UI_BUILD_SUCCESS。ui/发布产物已随源码重新构建入库。- Host Smoke:NOT RUN —— 真实 DBX + Windows 安装与真实 MySQL data-size 计划验证由维护者手工执行。
说明
- 本包为未签名候选包;DBX Store 收录 PR #112 仍针对 v0.5.4,本 release 未提交 Store signing。
DBX Plan Detective v0.5.4
变更
- Plan Detective
0.5.3 → 0.5.4 - 最低 DBX 宿主版本
>=0.6.18 - Host API
^1.2 - Permission
host.plans:read
这是一个仅修正宿主兼容性声明的 patch release,不包含功能变化。
DBX v0.6.18 正式包含插件 Host API 的只读 Estimated Plan 获取能力,对应上游 t8y2/dbx#9692。因此本插件最低宿主版本收紧为 DBX >=0.6.18。
本 Release 由现有 Release workflow 生成 unsigned universal candidate package。
DBX Plan Detective v0.5.3
变更内容
- 更新 Plan Detective 插件图标。
- 新图标采用“放大镜 + Execution Plan Tree”的视觉语义。
manifest.json与 workbench contribution 继续使用assets/plugin.svg。- 版本更新至
0.5.3。
验证
npm test:629/629 通过。npm run build:通过,输出DBX_UI_BUILD_SUCCESS。dbx-plugin package .:本地打包通过;包内确认包含assets/plugin.svg。- 未运行真实 DBX Host Smoke;当前 NAS/Linux 环境无真实 DBX Desktop Host。
边界
- 未修改插件功能。
- 本 Release 未修改
t8y2/dbx。 - 本轮不创建 DBX Store candidate,不修改
t8y2/dbx-store。