Module mz_repr::explain

source ·
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:

  1. Fixes the context type required for the explanation. in Explain::Context.
  2. Fixes the explanation type for each ExplainFormat in Explain::Text, Explain::Json, ….
  3. Provides an explanation type constructor for each supported ExplainFormat from references to S, ExplainConfig , and the current Explain::Context in Explain::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§

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.
  • 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 the inner instance with shadow items that are reported as present, even though they might not exist in inner.
  • Pretty-prints a list of indices.
  • A helper struct which will most commonly be used as the generic rendering context type C for various Explain$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 its items list.
  • A set of indexes that are used in the explained plan.

Enums§

Traits§

  • A trait that provides a unified interface for objects that can be explained.
  • A trait for humanizing components of an expression.