sz-orm-explain 4.6.0

Cross-dialect EXPLAIN result parser: full-table-scan / missing-index detection, plan regression checks
Documentation

sz-orm-explain — 跨方言 EXPLAIN 结果解析器

将 MySQL / PostgreSQL / SQLite / Oracle / MSSQL 的 EXPLAIN 输出解析为 统一的 [ExplainPlan],用于:

  • 全表扫描检测(ScanType::FullTable)
  • 缺失索引检测(index == None 且扫描行数超阈值)
  • 执行计划回归检测([crate::regression],需 explain-analyzer feature)

典型用法(配合 sz-orm-macros 的 query! 宏 db-verify 模式):

let plan = sz_orm_explain::parser_for(ExplainDialect::Postgres)?.parse(explain_raw)?;
if plan.scan_type == ScanType::FullTable {
    // 编译期/CI 警告:全表扫描
}

解析失败返回 [ExplainError::Unparseable],不 panic,可降级为"无警告"。

注意:本包刻意零依赖 sz-orm-core,通过自带的 [ExplainDialect] 枚举 描述方言,避免 core → macros → explain → core 依赖循环。