sz-orm-explain — Cross-Dialect EXPLAIN Result Parser
Parses EXPLAIN output from MySQL / PostgreSQL / SQLite / Oracle / MSSQL into
a unified [ExplainPlan], used for:
- Full table scan detection (
ScanType::FullTable) - Missing index detection (
index == Noneand scanned rows exceed threshold) - Execution plan regression detection ([
crate::regression], requiresexplain-analyzerfeature) - Slow query automatic governance ([
crate::slow_query_governance], requiresslow-query-governancefeature)
Typical usage (with sz-orm-macros's query! macro db-verify mode):
let plan = parser_for?.parse?;
if plan.scan_type == FullTable
Parse failure returns [ExplainError::Unparseable], does not panic, can degrade to "no warnings".
Note: This package intentionally has zero dependency on sz-orm-core, uses its own [ExplainDialect] enum
to describe dialects, avoiding core → macros → explain → core dependency cycle.