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 
- async_udf 
- 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
- ContextProviderand- ExprPlannerAPIs to customize SQL query planning
- ptr_eq
- registry
- FunctionRegistry trait
- scalar_doc_ sections 
- select_expr 
- simplify
- Structs and traits 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.
- DocumentationBuilder 
- A builder for Documentation’s.
- ReturnField Args 
- Information about arguments passed to the function
- ScalarFunction 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.
- StatisticsArgs 
- Arguments passed to AggregateUDFImpl::value_from_stats
- WindowUDF
- Logical representation of a user-defined window function (UDWF).
Enums§
- ArrayFunction Argument 
- ArrayFunction Signature 
- Coercion
- Represents type coercion rules for function arguments, specifying both the desired type and optional implicit coercion rules for source types.
- ColumnarValue 
- The result of evaluating an expression.
- EmitTo
- Describes how many rows should be emitted during grouping.
- LimitEffect 
- 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.
- TableProvider Filter Push Down 
- Indicates how a filter expression is handled by
TableProvider::scan.
- TableType 
- Indicates the type of this table for metadata/catalog purposes.
- TypeSignature 
- The types of arguments for which a function has implementations.
- TypeSignature Class 
- Represents the class of types that can be used in a function signature.
- 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.
- AggregateUDFImpl 
- Trait for implementing AggregateUDF.
- GroupsAccumulator 
- GroupsAccumulatorimplements a single aggregate (e.g. AVG) and stores the state for all groups internally.
- Literal
- Trait for converting a type to a Literalliteral expression.
- PartitionEvaluator 
- Partition evaluator for Window Functions
- ScalarUDFImpl 
- Trait for implementing user defined scalar functions.
- TableSource 
- Planning time information about a table.
- TimestampLiteral 
- Trait for converting a type to a literal timestamp
- WindowUDFImpl 
- Trait for implementing WindowUDF.
Functions§
- lit
- Create a literal expression
- lit_timestamp_ nano 
- Create a literal timestamp expression
- lit_with_ metadata 
Type Aliases§
- AccumulatorFactory Function 
- Factory that returns an accumulator for the given aggregate function.