Module executor

Source

Modulesยง

aggregation
This module contains wrappers over Aggregator trait that implement order by, filter, distinct and project.
azblob_file_scan ๐Ÿ”’
delete ๐Ÿ”’
expand ๐Ÿ”’
filter ๐Ÿ”’
gcs_file_scan ๐Ÿ”’
generic_exchange ๐Ÿ”’
group_top_n ๐Ÿ”’
hash_agg ๐Ÿ”’
hash_join
hop_window ๐Ÿ”’
iceberg_scan ๐Ÿ”’
insert ๐Ÿ”’
join ๐Ÿ”’
limit ๐Ÿ”’
local_lookup_join
log_row_seq_scan ๐Ÿ”’
max_one_row ๐Ÿ”’
merge_sort ๐Ÿ”’
merge_sort_exchange ๐Ÿ”’
mysql_query ๐Ÿ”’
nested_loop_join
order_by ๐Ÿ”’
postgres_query ๐Ÿ”’
project ๐Ÿ”’
project_set ๐Ÿ”’
row_seq_scan ๐Ÿ”’
s3_file_scan ๐Ÿ”’
sort_agg ๐Ÿ”’
sort_over_window ๐Ÿ”’
source ๐Ÿ”’
sys_row_seq_scan ๐Ÿ”’
table_function ๐Ÿ”’
test_utils
top_n ๐Ÿ”’
union ๐Ÿ”’
update ๐Ÿ”’
utils ๐Ÿ”’
values ๐Ÿ”’

Macrosยง

register_executor
Register an executor builder so that it can be used to build the executor from protobuf.

Structsยง

AggSpillManager
AggSpillManager is used to manage how to write spill data file and read them back. The spill data first need to be partitioned. Each partition contains 2 files: agg_state_file and input_chunks_file. The spill file consume a data chunk and serialize the chunk into a protobuf bytes. Finally, spill file content will look like the below. The file write pattern is append-only and the read pattern is sequential scan. This can maximize the disk IO performance.
AsOf
AsOfDesc
BufferChunkExecutor
DefaultCreateSource
DeleteExecutor
DeleteExecutor implements table deletion with values from its child executor.
DistributedLookupJoinExecutor
Distributed Lookup Join Executor. High level Execution flow: Repeat 1-3:
DistributedLookupJoinExecutorBuilder
DummyExecutor
EquiJoinParams
ExecutorBuilder
ExecutorBuilderDescriptor
Descriptor for executor builder.
ExecutorInfo
ExpandExecutor
FastInsertExecutor
A fast insert executor spacially designed for non-pgwire inserts such as websockets and webhooks.
FilterExecutor
GenericExchangeExecutor
GenericExchangeExecutorBuilder
GroupTopNExecutor
Group Top-N Executor
GroupTopNExecutorBuilder
HashAggExecutor
HashAggExecutor implements the hash aggregate algorithm.
HashAggExecutorBuilder
HashJoinExecutor
Hash Join Executor
HopWindowExecutor
IcebergScanExecutor
IcebergScanExecutorBuilder
InsertExecutor
InsertExecutor implements table insertion with values from its child executor.
JoinSpillManager
LimitExecutor
Limit executor.
LocalLookupJoinExecutor
Local Lookup Join Executor. High level Execution flow: Repeat 1-3:
LocalLookupJoinExecutorBuilder
LookupJoinBase
Lookup Join Base. Used by LocalLookupJoinExecutor and DistributedLookupJoinExecutor.
ManagedExecutor
ManagedExecutor build on top of the underlying executor. For now, it does two things:
MaxOneRowExecutor
MergeSortExchangeExecutorBuilder
MergeSortExchangeExecutorImpl
MergeSortExchangeExecutor2 takes inputs from multiple sources and The outputs of all the sources have been sorted in the same way.
MergeSortExecutor
MySqlQueryExecutor
MySqlQuery executor. Runs a query against a MySql database.
MySqlQueryExecutorBuilder
NestedLoopJoinExecutor
Nested loop join executor.
PostgresQueryExecutor
PostgresQuery executor. Runs a query against a Postgres database.
PostgresQueryExecutorBuilder
ProjectExecutor
ProjectSetExecutor
RowId
Id of one row in chunked data.
RowSeqScanExecutor
Executor that scans data from row table
RowSeqScanExecutorBuilder
ScanRange
Range for batch scan.
SortAggExecutor
SortAggExecutor implements the sort aggregate algorithm, which assumes that the input chunks has already been sorted by group columns. The aggregation will be applied to tuples within the same group. And the output schema is [group columns, agg result].
SortExecutor
Sort Executor
SortOverWindowExecutor
SortOverWindowExecutor accepts input chunks sorted by partition key and order key, and outputs chunks with window function result columns.
SourceExecutor
TableFunctionExecutor
TableFunctionExecutorBuilder
TopNExecutor
Top-N Executor
UnionExecutor
UpdateExecutor
UpdateExecutor implements table update with values from its child executor and given expressions.
ValuesExecutor
ValuesExecutor implements Values executor.
WrapStreamExecutor

Enumsยง

AsOfInequalityType
JoinType
ProjectSetSelectItem
Either a scalar expression or a set-returning function.

Staticsยง

BUILDER_DESCS
All registered executor builders.

Traitsยง

BoxedExecutorBuilder
Every Executor should impl this trait to provide a static method to build a BoxedExecutor from proto and global environment.
CreateSource
CreateSource determines the right type of ExchangeSource to create.
Executor
Refactoring of Executor using Stream.
LookupExecutorBuilder
Used to build the executor for the inner side

Functionsยง

batch_read
Read at least rows rows.
build_scan_range_from_pb
build_scan_ranges_from_pb
mysql_row_to_owned_row
postgres_row_to_owned_row
unix_timestamp_sec_to_epoch

Type Aliasesยง

BoxedDataChunkListStream
BoxedDataChunkStream
BoxedExecutor
BoxedLookupExecutorBuilder
ExchangeExecutor
JoinHashMap
In JoinHashMap, we only save the row id of the first build row that has the hash key. In fact, in the build side there may be multiple rows with the same hash key. To handle this case, we use ChunkedData to link them together. For example:
MergeSortExchangeExecutor