Skip to main content

Module engine

Module engine 

Source
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
BindingBuilder
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
OpLeftJoin
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
QueryEngineRegistry
Engine registry
QueryIter
Wrapper for boxed iterator to implement Iterator trait
QueryIterBase
Base query iterator wrapping a binding source
QueryIterFilter
Filter iterator - applies predicate to upstream
QueryIterJoin
Join iterator - nested loop join
QueryIterProject
Project iterator - selects subset of variables
QueryIterSlice
Slice iterator - limit and offset
QueryIterSort
Sort iterator - orders results
QueryIterUnion
Union iterator - concatenates multiple iterators
TransformCopy
Default copy transform (identity transformation)
TransformPushFilter
Filter pushdown transform
Triple
Triple pattern for graph matching
Var
A variable in a query

Enums§

Op
Core algebraic operator type
Pattern
Pattern element (variable or concrete value)

Traits§

BindingIterator
Core trait for binding iterators
OpTransform
Transformer trait for transforming Op trees
OpVisitor
Visitor trait for walking Op trees (read-only)
QueryEngine
Query engine trait
QueryEngineFactory
Factory for creating query engines