uqa_execution/
relational.rs1use std::sync::Arc;
13
14use uqa_core::Value;
15use uqa_sql::ast::SetOpKind;
16use uqa_sql::expr::truthy;
17#[cfg(test)]
18use uqa_sql::ResultRow;
19use uqa_sql::SQLParam;
20
21use crate::batch::{Batch, RowSchema};
22use crate::physical::{ExecError, ExecResult, PhysicalOperator};
23use crate::scalar::{eval_scalar, ScalarEvalContext, ScalarExpr};
24
25mod aggregate;
26mod evaluator;
27mod filter;
28mod limit;
29mod project;
30mod set_operation;
31mod sort;
32mod window;
33
34pub use aggregate::{AggregateExecutor, AggregateKind, AggregateSpec, HashAggregate};
35pub use evaluator::{
36 ExpressionEvaluator, RowPredicate, SharedExpressionEvaluator, SharedRowPredicate,
37};
38pub use filter::Filter;
39pub use limit::Limit;
40pub use project::Project;
41pub use set_operation::SetOperation;
42pub(crate) use sort::compare_sort_key_values_by;
43pub use sort::{compare_sort_key_values, Sort, SortKey};
44pub use window::{Window, WindowExecutor, WindowKind, WindowSpec};
45
46use aggregate::value_to_f64;
47use evaluator::DefaultExpressionEvaluator;
48use sort::compare_values;
49
50#[cfg(test)]
51use aggregate::{finalise_fold, AggFold};
52
53#[cfg(test)]
54mod tests;