Crate datafusion_expr

Source
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 and ExprPlanner 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§

expr_vec_fmt

Structs§

AggregateUDF
Logical representation of a user-defined aggregate function (UDAF).
DocSection
Documentation
Documentation for use by ScalarUDFImpl, AggregateUDFImpl and WindowUDFImpl functions.
DocumentationBuilder
A builder for Documentation’s.
ReturnInfo
Return metadata for this function.
ReturnTypeArgs
Information about arguments passed to the function
ScalarFunctionArgs
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) and Volatility for a function.
StatisticsArgs
Arguments passed to AggregateUDFImpl::value_from_stats
WindowUDF
Logical representation of a user-defined window function (UDWF).

Enums§

ArrayFunctionSignature
ColumnarValue
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 if f(S) >= f(T) whenever S is a superset of T.
TableProviderFilterPushDown
Indicates how a filter expression is handled by TableProvider::scan.
TableType
Indicates the type of this table for metadata/catalog purposes.
TypeSignature
A function’s type signature defines the types of arguments the function supports.
TypeSignatureClass
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.
AggregateUDFImpl
Trait for implementing AggregateUDF.
GroupsAccumulator
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.
PartitionEvaluator
Partition evaluator for Window Functions
ScalarUDFImpl
Trait for implementing user defined scalar functions.
TableSource
Access schema information and filter push-down capabilities.
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

Type Aliases§

AccumulatorFactoryFunction
Factory that returns an accumulator for the given aggregate function.