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 container for derived analyses.
- A somewhat ad-hoc way to keep carry a plan with a set of analyses derived for each node in that plan.
- Pretty-prints a list of scalar expressions that may have runs of column indices as a comma-separated list interleaved with interval expressions.
- 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§
- In a snapshot, one arrangement of the first input is scanned, all the other arrangements (of the first input, and of all other inputs) only get lookups. When later input batches are arriving, all inputs are fully read.
- 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
.
Traits§
- A trait that provides a unified interface for objects that can be explained.
- A trait for humanizing components of an expression.