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;
pub use expr_fn::*;
pub use logical_plan::*;
Modules§
- aggregate_
doc_ sections - binary
- Coercion rules for matching argument types for binary operators
- conditional_
expressions - Conditional expressions
- execution_
props - expr
- Logical Expressions:
Expr
- expr_fn
- Functions for creating logical expressions
- expr_
rewriter - Expression rewriter
- expr_
schema - function
- Function module contains typing and signature for built-in and user defined functions.
- groups_
accumulator - interval_
arithmetic - logical_
plan - planner
ContextProvider
andExprPlanner
APIs to customize SQL query planning- registry
- FunctionRegistry trait
- scalar_
doc_ sections - simplify
- Structs and traits to provide the information needed for expression simplification.
- sort_
properties - test
- tree_
node - Tree node implementation for Logical Expressions
- type_
coercion - Type coercion rules for DataFusion
- 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
,AggregateUDFImpl
andWindowUDFImpl
functions. - Documentation
Builder - A builder for
Documentation
’s. - Return
Info - Return metadata for this function.
- Return
Type Args - Information about arguments passed to the function
- Scalar
Function Args - Arguments passed to
ScalarUDFImpl::invoke_with_args
when invoking a scalar function. - ScalarUDF
- Logical representation of a Scalar User Defined Function.
- Signature
- Defines the supported argument types (
TypeSignature
) andVolatility
for a function. - Statistics
Args - Arguments passed to
AggregateUDFImpl::value_from_stats
- WindowUDF
- Logical representation of a user-defined window function (UDWF).
Enums§
- Array
Function Signature - Columnar
Value - The result of evaluating an expression.
- EmitTo
- Describes how many rows should be emitted during grouping.
- 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,
f
is a monotonically increasing set function iff(S) >= f(T)
wheneverS
is 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 - A function’s type signature defines the types of arguments the function supports.
- Type
Signature Class - Represents the class of types that can be used in a function signature.
- Volatility
- A function’s volatility, which defines the functions eligibility for certain optimizations
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
TypeSignature
for more details.
Traits§
- Accumulator
- Tracks an aggregate function’s state.
- AggregateUDF
Impl - Trait for implementing
AggregateUDF
. - Groups
Accumulator GroupsAccumulator
implements a single aggregate (e.g. AVG) and stores the state for all groups internally.- Literal
- Trait for converting a type to a
Literal
literal expression. - Partition
Evaluator - Partition evaluator for Window Functions
- ScalarUDF
Impl - Trait for implementing user defined scalar functions.
- Table
Source - Access schema information and filter push-down capabilities.
- 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
Type Aliases§
- Accumulator
Factory Function - Factory that returns an accumulator for the given aggregate function.