Expand description
A set of traits for modeling things that can be explained by a
SQL EXPLAIN
statement.
The main trait in this module is Explain
.
An explainable subject S
implements Explain
, and as part of that:
- Fixes the context type required for the explanation.
in
Explain::Context
. - Fixes the explanation type for each
ExplainFormat
inExplain::Text
,Explain::Json
, …. - Provides an explanation type constructor for each supported
ExplainFormat
from references toS
,ExplainConfig
, and the currentExplain::Context
inExplain::explain_text
,Explain::explain_json
, ….
The same explanation type can be shared by more than one
ExplainFormat
.
Use UnsupportedFormat
and the default explain_$format
constructor for Explain
to indicate that the implementation does
not support this $format
.
Re-exports
pub use crate::explain::tracing::trace_plan;
Modules
- Structs and traits for
EXPLAIN AS DOT
. - Structs and traits for
EXPLAIN AS JSON
. - Structs and traits for
EXPLAIN AS TEXT
. - Tracing utilities for explainable plans.
Structs
- A somewhat ad-hoc way to keep carry a plan with a set of attributes derived for each node in that plan.
- A container for derived attributes.
- Pretty-prints a list of scalar expressions that may have runs of column indices as a comma-separated list interleaved with interval expressions.
- A bare-minimum implementation of
ExprHumanizer
. - A set of options for controlling the output of
Explain
implementations. - An
ExprHumanizer
that extends theinner
instance with shadow items that are reported as present, even though they might not exist ininner
. - Pretty-prints a list of indices.
- A helper struct which will most commonly be used as the generic rendering context type
C
for variousExplain$Format
implementations. - A description of a catalog item that does not exist, but can be reported as present in the catalog by a
ExprHumanizerExt
instance that has it in itsitems
list. - A set of indexes that are used in the explained plan.
Enums
- The type of errors that may occur when an
Explain::explain
call goes wrong. - Possible output formats for an explanation.
- The type of object to be explained
- A zero-variant enum to be used as the explanation type in the
Explain
implementation for all formats that are not supported forSelf
.
Constants
Traits
- A trait that provides a unified interface for objects that can be explained.
- A trait for humanizing components of an expression.