sz-orm-explain — 跨方言 EXPLAIN 结果解析器
将 MySQL / PostgreSQL / SQLite / Oracle / MSSQL 的 EXPLAIN 输出解析为
统一的 [ExplainPlan],用于:
- 全表扫描检测(
ScanType::FullTable) - 缺失索引检测(
index == None且扫描行数超阈值) - 执行计划回归检测([
crate::regression],需explain-analyzerfeature)
典型用法(配合 sz-orm-macros 的 query! 宏 db-verify 模式):
let plan = parser_for?.parse?;
if plan.scan_type == FullTable
解析失败返回 [ExplainError::Unparseable],不 panic,可降级为"无警告"。
注意:本包刻意零依赖 sz-orm-core,通过自带的 [ExplainDialect] 枚举
描述方言,避免 core → macros → explain → core 依赖循环。