Module datafusion::logical_plan::plan
source · [−]Expand description
This is a legacy module that only contains re-exports of other modules
Re-exports
pub use crate::datasource::provider_as_source;
pub use crate::datasource::source_as_provider;
pub use crate::datasource::DefaultTableSource;
Structs
Aggregates its input based on a set of grouping and aggregate expressions (e.g. SUM).
Runs the actual plan, and then prints the physical plan with with execution metrics.
Creates a catalog (aka “Database”).
Creates a schema.
Creates an external table.
Creates an in memory table.
Creates a view.
Apply Cross Join to two logical plans
Removes duplicate rows from the input
Drops a table.
Produces no rows: An empty relation with an empty schema
Produces a relation with string representations of various parts of the plan
Extension operator defined outside of DataFusion
Filters rows from its input that do not match an expression (essentially a WHERE clause with a predicate expression).
Formats plans for graphical display using the DOT
language. This
format can be visualized using software from
graphviz
Formats plans with a single line per node. For example:
Join two logical plans on one or more join columns
Produces the first n
tuples from its input and discards the rest.
Evaluates an arbitrary list of expressions (essentially a SELECT with an expression list) on its input.
Repartition the plan based on a partitioning scheme.
Sorts its input according to a list of sort expressions.
Represents some sort of execution plan, in String form
Subquery
Aliased subquery
Produces rows from a table provider by reference or from the context
Union multiple inputs
Values expression. See Postgres VALUES documentation for more details.
Window its input based on a set of window spec and window function (e.g. SUM or RANK)
Enums
Join constraint
Join type
A LogicalPlan represents the different types of relational operators (such as Projection, Filter, etc) and can be created by the SQL query planner and the DataFrame API.
Logical partitioning schemes supported by the repartition operator.
Represents which type of plan, when storing multiple for use in EXPLAIN plans
! Table source Indicates whether and how a filter expression can be handled by a TableProvider for table scans.
Traits
Trait that implements the Visitor
pattern for a
depth first walk of LogicalPlan
nodes. pre_visit
is called
before any children are visited, and then post_visit
is called
after all children have been visited.
To use, define a struct that implements this trait and then invoke
LogicalPlan::accept
.
The TableSource trait is used during logical query planning and optimizations and provides access to schema information and filter push-down capabilities. This trait provides a subset of the functionality of the TableProvider trait in the core datafusion crate. The TableProvider trait provides additional capabilities needed for physical query execution (such as the ability to perform a scan). The reason for having two separate traits is to avoid having the logical plan code be dependent on the DataFusion execution engine. Other projects may want to use DataFusion’s logical plans and have their own execution engine.
Trait for something that can be formatted as a stringified plan
This defines the interface for LogicalPlan
nodes that can be
used to extend DataFusion with custom relational operators.