Expand description
DataFusion is an extensible query execution framework that uses Apache Arrow as its in-memory format.
This crate is a submodule of DataFusion that provides types representing logical query plans (LogicalPlan) and logical expressions (Expr) as well as utilities for working with these types.
The expr_fn module contains functions for creating expressions.
Re-exports§
pub use expr::Between;pub use expr::BinaryExpr;pub use expr::Case;pub use expr::Cast;pub use expr::Expr;pub use expr::GetFieldAccess;pub use expr::GroupingSet;pub use expr::Like;pub use expr::Sort as SortExpr;pub use expr::TryCast;pub use expr::WindowFunctionDefinition;pub use expr_schema::ExprSchemable;pub use function::PartitionEvaluatorFactory;pub use function::ReturnTypeFunction;pub use function::ScalarFunctionImplementation;pub use function::StateTypeFunction;pub use window_frame::WindowFrame;pub use window_frame::WindowFrameBound;pub use window_frame::WindowFrameUnits;pub use sqlparser;sqlpub use expr_fn::*;pub use logical_plan::*;
Modules§
- aggregate_
doc_ sections - arguments
- Argument resolution logic for named function parameters
- async_
udf - binary
- Coercion rules for matching argument types for binary operators
- conditional_
expressions - Conditional expressions
- dml
- DML (Data Manipulation Language) types for DELETE, UPDATE operations.
- execution_
props - expr
- Logical Expressions:
Expr - expr_fn
- Functions for creating logical expressions
- expr_
rewriter - Expression rewriter
- expr_
schema - extension_
types - This module contains code that enables DataFusion’s extension type capabilities.
- function
- Function module contains typing and signature for built-in and user defined functions.
- groups_
accumulator - interval_
arithmetic - logical_
plan - planner
ContextProviderandExprPlannerAPIs to customize SQL query planning- preimage
- ptr_eq
- registry
- FunctionRegistry trait
- scalar_
doc_ sections - select_
expr - simplify
- Structs to provide the information needed for expression simplification.
- sort_
properties - statistics
- test
- tree_
node - Tree node implementation for Logical Expressions
- type_
coercion - Type coercion rules for DataFusion
- udf_eq
- utils
- Expression utilities
- var_
provider - Variable provider
- window_
doc_ sections - window_
frame - Window frame module
- window_
state - Structures used to hold window function state (for implementing WindowUDFs)
Macros§
Structs§
- AggregateUDF
- Logical representation of a user-defined aggregate function (UDAF).
- DocSection
- Documentation
- Documentation for use by
ScalarUDFImpl,AggregateUDFImplandWindowUDFImplfunctions. - Documentation
Builder - A builder for
Documentation’s. - Higher
Order Function Args - Arguments passed to
HigherOrderUDFImpl::invoke_with_argswhen invoking a higher order function. - Higher
Order Return Field Args - Information about arguments passed to the function
- Higher
Order Signature - Provides information necessary for calling a higher order function.
- Higher
OrderUDF - Logical representation of a Higher Order User Defined Function.
- Lambda
Argument - A lambda argument to a HigherOrderFunction
- Return
Field Args - Information about arguments passed to the function
- Scalar
Function Args - Arguments passed to
ScalarUDFImpl::invoke_with_argswhen invoking a scalar function. - ScalarUDF
- Logical representation of a Scalar User Defined Function.
- Signature
- Provides information necessary for calling a function.
- Statistics
Args - Arguments passed to
AggregateUDFImpl::value_from_stats - Struct
Field Mapping - Describes how a struct-producing UDF’s output fields correspond to its input arguments. This enables the optimizer to propagate orderings through struct projections (e.g., so that sorting by a struct field can be recognized as equivalent to sorting by the source column).
- WindowUDF
- Logical representation of a user-defined window function (UDWF).
Enums§
- Array
Function Argument - Array
Function Signature - Coercion
- Represents type coercion rules for function arguments, specifying both the desired type and optional implicit coercion rules for source types.
- Columnar
Value - The result of evaluating an expression.
- EmitTo
- Describes how many rows should be emitted during grouping.
- Expression
Placement - Describes where an expression should be placed in the query plan for optimal execution. This is used by optimizers to make decisions about expression placement, such as whether to push expressions down through projections.
- Higher
Order Type Signature - The types of arguments for which a function has implementations.
- Lambda
Parameters Progress - Represents a step during the resolution of the parameters of all lambdas of a given higher-order function via HigherOrderUDFImpl::lambda_parameters. It’s valid that the fields of a given lambda changes between steps, and is up to the implementation to provide during the function evaluation the parameters that matches the fields returned at the LambdaParametersProgress::Complete step. See HigherOrderUDFImpl::lambda_parameters docs for more details
- Limit
Effect - the effect this function will have on the limit pushdown
- Operator
- Operators applied to expressions
- ReversedUDAF
- ReversedUDWF
- SetMonotonicity
- Indicates whether an aggregation function is monotonic as a set
function. A set function is monotonically increasing if its value
increases as its argument grows (as a set). Formally,
fis a monotonically increasing set function iff(S) >= f(T)wheneverSis a superset ofT. - Table
Provider Filter Push Down - Indicates how a filter expression is handled by
TableProvider::scan. - Table
Type - Indicates the type of this table for metadata/catalog purposes.
- Type
Signature - The types of arguments for which a function has implementations.
- Type
Signature Class - Represents the class of types that can be used in a function signature.
- Value
OrLambda - An argument to a higher order function
- Volatility
- How a function’s output changes with respect to a fixed input
Constants§
- TIMEZONE_
WILDCARD - Constant that is used as a placeholder for any valid timezone.
This is used where a function can accept a timestamp type with any
valid timezone, it exists to avoid the need to enumerate all possible
timezones. See
TypeSignaturefor more details.
Traits§
- Accumulator
- Tracks an aggregate function’s state.
- AggregateUDF
Impl - Trait for implementing
AggregateUDF. - Groups
Accumulator GroupsAccumulatorimplements a single aggregate (e.g. AVG) and stores the state for all groups internally.- Higher
OrderUDF Impl - Trait for implementing user defined higher order functions.
- Literal
- Trait for converting a type to a
Literalliteral expression. - Partition
Evaluator - Partition evaluator for Window Functions
- ScalarUDF
Impl - Trait for implementing user defined scalar functions.
- Table
Source - Planning time information about a table.
- Timestamp
Literal - Trait for converting a type to a literal timestamp
- WindowUDF
Impl - Trait for implementing
WindowUDF.
Functions§
- lit
- Create a literal expression
- lit_
timestamp_ nano - Create a literal timestamp expression
- lit_
with_ metadata - udaf_
default_ display_ name - Encapsulates default implementation of
AggregateUDFImpl::display_name. - udaf_
default_ human_ display - Encapsulates default implementation of
AggregateUDFImpl::human_display. - udaf_
default_ return_ field - Encapsulates default implementation of
AggregateUDFImpl::return_field. - udaf_
default_ schema_ name - Encapsulates default implementation of
AggregateUDFImpl::schema_name. - udaf_
default_ window_ function_ display_ name - Encapsulates default implementation of
AggregateUDFImpl::window_function_display_name. - udaf_
default_ window_ function_ schema_ name - Encapsulates default implementation of
AggregateUDFImpl::window_function_schema_name.
Type Aliases§
- Accumulator
Factory Function - Factory that returns an accumulator for the given aggregate function.