Expand description
Query Execution Engine
Jena-inspired algebraic query execution with pluggable engines.
§Architecture
QueryExpr (AST) → Op (Algebra) → Plan → Iterator<Binding>
┌─────────────────────────────────────────────────────────────┐
│ QueryEngine │
├─────────────────────────────────────────────────────────────┤
│ compile(QueryExpr) → Op │
│ optimize(Op) → Op │
│ execute(Op) → BindingIterator │
└─────────────────────────────────────────────────────────────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
OpBGP OpJoin OpFilter
(BasicPattern) (Join two Ops) (Filter Op)§Components
- Op: Algebraic operators (scan, filter, join, union, etc.)
- Transform: Visitors that transform Op trees
- Binding: Variable -> Value mapping
- BindingIterator: Lazy result stream
- QueryEngine: Compiles, optimizes, and executes queries
Modules§
- aggregates_
extra - ClickHouse-parity aggregate functions (Track B4 sprint).
- binding
- Variable Bindings
- iterator
- Query Result Iterators
- op
- Algebraic Query Operators
- registry
- Query Engine Registry
- transform
- Op Tree Transformations
Structs§
- Binding
- Immutable binding from variables to values
- Binding
Builder - Builder for creating bindings
- OpBGP
- Basic Graph Pattern - set of triple patterns
- OpDisjunction
- Disjunction operator (OR patterns)
- OpDistinct
- Distinct operator
- OpExtend
- Extend operator (bind expression to variable)
- OpFilter
- Filter operator
- OpGroup
- Group operator
- OpJoin
- Join two operators
- OpLeft
Join - Left outer join (OPTIONAL)
- OpMinus
- Minus operator (set difference)
- OpNull
- Null operator (empty pattern)
- OpOrder
- Order operator
- OpProject
- Project operator
- OpReduced
- Reduced operator (adjacent duplicate removal)
- OpSequence
- Sequence operator
- OpSlice
- Slice operator (offset/limit)
- OpTable
- Table operator (inline data VALUES)
- OpTriple
- Single triple pattern
- OpUnion
- Union operator
- Query
Engine Registry - Engine registry
- Query
Iter - Wrapper for boxed iterator to implement Iterator trait
- Query
Iter Base - Base query iterator wrapping a binding source
- Query
Iter Filter - Filter iterator - applies predicate to upstream
- Query
Iter Join - Join iterator - nested loop join
- Query
Iter Project - Project iterator - selects subset of variables
- Query
Iter Slice - Slice iterator - limit and offset
- Query
Iter Sort - Sort iterator - orders results
- Query
Iter Union - Union iterator - concatenates multiple iterators
- Transform
Copy - Default copy transform (identity transformation)
- Transform
Push Filter - Filter pushdown transform
- Triple
- Triple pattern for graph matching
- Var
- A variable in a query
Enums§
Traits§
- Binding
Iterator - Core trait for binding iterators
- OpTransform
- Transformer trait for transforming Op trees
- OpVisitor
- Visitor trait for walking Op trees (read-only)
- Query
Engine - Query engine trait
- Query
Engine Factory - Factory for creating query engines