1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! A vectorized execution engine.
//!
//! Executes a [`Plan`](crate::planner::Plan) against an in-memory [`Table`],
//! processing rows in batches ([`BATCH_SIZE`]) rather than one at a time.
//! This is the CPU-only path; GPU offload (via `tpt-gpu-*`, behind the `gpu`
//! feature) plugs into the same dispatch decision the planner already makes
//! but is not required — every query has a working CPU fallback.
//!
//! Submodules mirror the file's original sections: [`value`] (the row/table
//! data model and literal conversion), [`expr`] (`WHERE`/`HAVING` expression
//! evaluation), [`aggregate`] (`GROUP BY` + aggregate functions), [`window`]
//! (`OVER (...)` window functions), [`exec`] (walking a
//! [`PlanNode`](crate::planner::PlanNode) tree), and [`vector`] (embedding
//! similarity search). Only the items re-exported below are part of the
//! crate's public surface; everything else is private to `executor` (or
//! `pub(crate)` where [`database`](crate::database) or
//! [`parser`](crate::parser) need it directly).
/// Rows processed per vectorized batch.
pub const BATCH_SIZE: usize = 1024;
pub use agg_default_alias;
pub use aggregate_table;
pub use execute;
pub use find_value;
pub use ;
pub use *;
pub use vector_topk;
pub use apply_window_funcs;