Akar Processor
Physical operator execution pipeline — the runtime that executes query plans.
Physical operators (48 structs):
PhysicalScan— reads column-major table data into DataChunksPhysicalFilter— evaluates expressions, produces selection vectorsPhysicalProjection— selects/orders columnsPhysicalOrderBy— multi-key sorting (all Value types, NULLs last)PhysicalLimit— chunk-aware LIMIT/OFFSETPhysicalHashJoin— hash join with Value-keyed hash table (all types)PhysicalAggregate— scalar and GROUP BY aggregates (COUNT, SUM, AVG, MIN, MAX)PhysicalCopyFrom— CSV/Parquet file loading into tablesPhysicalDelete— row deletion from node tablesPhysicalSet— property updates on matched rowsPhysicalUnwind— list expression expansion into rowsPhysicalIntersect— WCOJ intersect executionPhysicalRecursiveExtend— recursive path traversalPhysicalCountRelTable— CSR metadata COUNT
Expression evaluation:
- Arrow-native evaluation (
evaluate_to_arrow+boolean_array_to_selection) - Parallel aggregation via
AggregateHashTable - Parallel hash join via
JoinHashTable BlockMergeSort+RadixSortfor ORDER BYBinaryHeapO(n log k) TopK
Pipeline: QueryProcessor::execute(&[LogicalOperator]) → flattens plan → runs physical operators → returns Vec<DataChunk>.
Tests: 142