Skip to main content

Module operator

Module operator 

Source
Expand description

Volcano-style operator interface for streaming query execution.

This module provides the foundation for a streaming execution model where operators pull rows on-demand rather than materializing everything upfront.

§Architecture

┌──────────────┐
│ Consumer     │ ← Pulls rows via next()
└──────┬───────┘
       │
┌──────▼───────┐
│ Join Op      │ ← Build side materialized, probe side streamed
└──────┬───────┘
       │
┌──────┴──────┐
│             │
▼             ▼
┌─────┐   ┌─────┐
│Scan │   │Scan │ ← Stream rows from storage
└─────┘   └─────┘

§Key Benefits

  1. Reduced Memory: Only materialize what’s needed (e.g., hash join build side)
  2. Early Termination: LIMIT can stop execution without processing all rows
  3. Pipelining: Multiple operators can work on the same row in sequence
  4. Zero-Copy: RowRef allows referencing rows without cloning

Structs§

ColumnInfo
Column information for operator schema.
CompositeRow
A composite row that references values from two source rows.
DirectBuildCompositeRow
A direct-build composite row that owns the probe row directly.
EmptyOperator
An empty operator that produces no rows.
JoinProjection
Projection configuration for fused projection during join row creation.
MaterializedOperator
An operator that yields rows from a pre-materialized vector.
ProjectedRow
A projected row whose slots still reference the preceding JOIN edge.
QueryResultOperator
Operator that streams rows from a QueryResult.
SharedRow
Arc-backed reference to one row in a materialized batch.

Enums§

ColumnSource
Specifies which side of a binary join a projected column comes from.
OrderingProperty
Physical ordering guaranteed by an operator.
RowRef
A row reference that can be borrowed, owned, or composite.

Traits§

Operator
Volcano-style iterator interface for query operators.