Skip to content

🧪 test(metadata): 对齐 SQLite 自增检测基准 - #109

Merged
ZhaoXingPeng merged 1 commit into
mainfrom
test/108-sqlite-benchmark
Sep 7, 2026
Merged

🧪 test(metadata): 对齐 SQLite 自增检测基准#109
ZhaoXingPeng merged 1 commit into
mainfrom
test/108-sqlite-benchmark

Conversation

@ZhaoXingPeng

@ZhaoXingPeng ZhaoXingPeng commented Sep 7, 2026

Copy link
Copy Markdown
Owner

关联 Issue

Closes #108

背景(Situation)

#106 为识别 SQLite AUTOINCREMENT 增加了 sqlite_master DDL 查询,describe_table 的 SQL 往返从 6 次变为 7 次;旧 benchmark 和可视化测试桩仍假设 6 次,导致回归测试与当前元数据契约不一致。

任务(Task)

同步查询次数基线和 SQLite 测试桩,明确新增往返用于自增语义读取;不修改运行时代码或把额外查询描述为性能优化。

行动(Action)

  • 将 SQLite 描述查询基线更新为 7 次,并写明每次调用的来源。
  • 让 ER 测试桩覆盖参数绑定的 sqlite_master 查询。
  • 保留 PRAGMA 特殊表名转义和既有 metadata 断言。
  • 没有做什么:不删除自增检测、不优化 SQL、不宣称吞吐或延迟提升。

验证(Verification)

环境:Windows 11,Python 3.12.12。

  • PYTHONPATH=src python -m pytest tests/unit/ -q:651 passed。
  • SQLite benchmark 与 visualization 定向测试:通过。
  • Ruff 检查、格式检查和 git diff --check:通过。

实验与证据(Evidence)

在固定 SQLite schema 上运行描述 benchmark,queries_per_call 稳定为 7;ER 特殊表名测试确认 DDL 查询表名仍作为参数传入,PRAGMA 标识符保持转义。7 次是完整性成本,不是性能收益。

兼容性、风险与回滚

  • 公共 API / 数据格式 / 迁移:仅更新测试和基准说明,运行时输出不变。
  • 风险与已知限制:基准受本地 SQLite/文件系统影响,不能代表生产延迟;后续优化须保持自增字段证据。
  • 回滚:revert 对应测试提交即可恢复旧基线说明,但应同时回滚依赖它的断言。
  • 后续 Issue:若要减少 catalog 往返,应另建带前后测量的 perf Issue。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

回归原因:#105 为读取 AUTOINCREMENT 增加了 sqlite_master 查询,固定 benchmark 的 queries_per_call 从 6 变为 7;旧断言因此真实失败。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

测试调整:更新 benchmark 期望值并让 SQLite ER 测试桩返回 sqlite_master DDL,明确验证表名通过参数绑定传递。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

文档记录:基准文档现在说明第 7 次往返用于元数据完整性,不把该变化包装为性能提升。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

验证记录:完整 tests/unit 共 651 项通过;Ruff 检查、格式检查和 diff 检查全部通过。

@ZhaoXingPeng

Copy link
Copy Markdown
Owner Author

边界说明:本 PR 只同步测试与基准文档,不改变运行时代码;后续性能实验应以 7 次查询为基线。

@ZhaoXingPeng
ZhaoXingPeng merged commit 3d8c53d into main Sep 7, 2026
10 checks passed
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.

🧪 test(metadata): 对齐 SQLite 自增检测基准

1 participant