pub trait BatchPlanVisitor {
type Result: Default;
type DefaultBehavior: DefaultBehavior<Self::Result>;
Show 35 methods
// Required method
fn default_behavior() -> Self::DefaultBehavior;
// Provided methods
fn visit_batch(&mut self, plan: PlanRef<Batch>) -> Self::Result { ... }
fn visit_batch_simple_agg(&mut self, plan: &BatchSimpleAgg) -> Self::Result { ... }
fn visit_batch_hash_agg(&mut self, plan: &BatchHashAgg) -> Self::Result { ... }
fn visit_batch_sort_agg(&mut self, plan: &BatchSortAgg) -> Self::Result { ... }
fn visit_batch_project(&mut self, plan: &BatchProject) -> Self::Result { ... }
fn visit_batch_filter(&mut self, plan: &BatchFilter) -> Self::Result { ... }
fn visit_batch_insert(&mut self, plan: &BatchInsert) -> Self::Result { ... }
fn visit_batch_delete(&mut self, plan: &BatchDelete) -> Self::Result { ... }
fn visit_batch_update(&mut self, plan: &BatchUpdate) -> Self::Result { ... }
fn visit_batch_seq_scan(&mut self, plan: &BatchSeqScan) -> Self::Result { ... }
fn visit_batch_sys_seq_scan(
&mut self,
plan: &BatchSysSeqScan,
) -> Self::Result { ... }
fn visit_batch_log_seq_scan(
&mut self,
plan: &BatchLogSeqScan,
) -> Self::Result { ... }
fn visit_batch_hash_join(&mut self, plan: &BatchHashJoin) -> Self::Result { ... }
fn visit_batch_nested_loop_join(
&mut self,
plan: &BatchNestedLoopJoin,
) -> Self::Result { ... }
fn visit_batch_values(&mut self, plan: &BatchValues) -> Self::Result { ... }
fn visit_batch_sort(&mut self, plan: &BatchSort) -> Self::Result { ... }
fn visit_batch_exchange(&mut self, plan: &BatchExchange) -> Self::Result { ... }
fn visit_batch_limit(&mut self, plan: &BatchLimit) -> Self::Result { ... }
fn visit_batch_top_n(&mut self, plan: &BatchTopN) -> Self::Result { ... }
fn visit_batch_hop_window(&mut self, plan: &BatchHopWindow) -> Self::Result { ... }
fn visit_batch_table_function(
&mut self,
plan: &BatchTableFunction,
) -> Self::Result { ... }
fn visit_batch_expand(&mut self, plan: &BatchExpand) -> Self::Result { ... }
fn visit_batch_lookup_join(
&mut self,
plan: &BatchLookupJoin,
) -> Self::Result { ... }
fn visit_batch_project_set(
&mut self,
plan: &BatchProjectSet,
) -> Self::Result { ... }
fn visit_batch_union(&mut self, plan: &BatchUnion) -> Self::Result { ... }
fn visit_batch_group_top_n(&mut self, plan: &BatchGroupTopN) -> Self::Result { ... }
fn visit_batch_source(&mut self, plan: &BatchSource) -> Self::Result { ... }
fn visit_batch_over_window(
&mut self,
plan: &BatchOverWindow,
) -> Self::Result { ... }
fn visit_batch_max_one_row(&mut self, plan: &BatchMaxOneRow) -> Self::Result { ... }
fn visit_batch_kafka_scan(&mut self, plan: &BatchKafkaScan) -> Self::Result { ... }
fn visit_batch_iceberg_scan(
&mut self,
plan: &BatchIcebergScan,
) -> Self::Result { ... }
fn visit_batch_file_scan(&mut self, plan: &BatchFileScan) -> Self::Result { ... }
fn visit_batch_postgres_query(
&mut self,
plan: &BatchPostgresQuery,
) -> Self::Result { ... }
fn visit_batch_my_sql_query(
&mut self,
plan: &BatchMySqlQuery,
) -> Self::Result { ... }
}
Expand description
The visitor for plan nodes. visit all inputs and return the ret value of the left most input,
and leaf node returns R::default()
Required Associated Types§
type Result: Default
type DefaultBehavior: DefaultBehavior<Self::Result>
Required Methods§
Sourcefn default_behavior() -> Self::DefaultBehavior
fn default_behavior() -> Self::DefaultBehavior
The behavior for the default implementations of visit_xxx
.
Provided Methods§
fn visit_batch(&mut self, plan: PlanRef<Batch>) -> Self::Result
Sourcefn visit_batch_simple_agg(&mut self, plan: &BatchSimpleAgg) -> Self::Result
fn visit_batch_simple_agg(&mut self, plan: &BatchSimpleAgg) -> Self::Result
Visit BatchSimpleAgg
, the function should visit the inputs.
Sourcefn visit_batch_hash_agg(&mut self, plan: &BatchHashAgg) -> Self::Result
fn visit_batch_hash_agg(&mut self, plan: &BatchHashAgg) -> Self::Result
Visit BatchHashAgg
, the function should visit the inputs.
Sourcefn visit_batch_sort_agg(&mut self, plan: &BatchSortAgg) -> Self::Result
fn visit_batch_sort_agg(&mut self, plan: &BatchSortAgg) -> Self::Result
Visit BatchSortAgg
, the function should visit the inputs.
Sourcefn visit_batch_project(&mut self, plan: &BatchProject) -> Self::Result
fn visit_batch_project(&mut self, plan: &BatchProject) -> Self::Result
Visit BatchProject
, the function should visit the inputs.
Sourcefn visit_batch_filter(&mut self, plan: &BatchFilter) -> Self::Result
fn visit_batch_filter(&mut self, plan: &BatchFilter) -> Self::Result
Visit BatchFilter
, the function should visit the inputs.
Sourcefn visit_batch_insert(&mut self, plan: &BatchInsert) -> Self::Result
fn visit_batch_insert(&mut self, plan: &BatchInsert) -> Self::Result
Visit BatchInsert
, the function should visit the inputs.
Sourcefn visit_batch_delete(&mut self, plan: &BatchDelete) -> Self::Result
fn visit_batch_delete(&mut self, plan: &BatchDelete) -> Self::Result
Visit BatchDelete
, the function should visit the inputs.
Sourcefn visit_batch_update(&mut self, plan: &BatchUpdate) -> Self::Result
fn visit_batch_update(&mut self, plan: &BatchUpdate) -> Self::Result
Visit BatchUpdate
, the function should visit the inputs.
Sourcefn visit_batch_seq_scan(&mut self, plan: &BatchSeqScan) -> Self::Result
fn visit_batch_seq_scan(&mut self, plan: &BatchSeqScan) -> Self::Result
Visit BatchSeqScan
, the function should visit the inputs.
Sourcefn visit_batch_sys_seq_scan(&mut self, plan: &BatchSysSeqScan) -> Self::Result
fn visit_batch_sys_seq_scan(&mut self, plan: &BatchSysSeqScan) -> Self::Result
Visit BatchSysSeqScan
, the function should visit the inputs.
Sourcefn visit_batch_log_seq_scan(&mut self, plan: &BatchLogSeqScan) -> Self::Result
fn visit_batch_log_seq_scan(&mut self, plan: &BatchLogSeqScan) -> Self::Result
Visit BatchLogSeqScan
, the function should visit the inputs.
Sourcefn visit_batch_hash_join(&mut self, plan: &BatchHashJoin) -> Self::Result
fn visit_batch_hash_join(&mut self, plan: &BatchHashJoin) -> Self::Result
Visit BatchHashJoin
, the function should visit the inputs.
Sourcefn visit_batch_nested_loop_join(
&mut self,
plan: &BatchNestedLoopJoin,
) -> Self::Result
fn visit_batch_nested_loop_join( &mut self, plan: &BatchNestedLoopJoin, ) -> Self::Result
Visit BatchNestedLoopJoin
, the function should visit the inputs.
Sourcefn visit_batch_values(&mut self, plan: &BatchValues) -> Self::Result
fn visit_batch_values(&mut self, plan: &BatchValues) -> Self::Result
Visit BatchValues
, the function should visit the inputs.
Sourcefn visit_batch_sort(&mut self, plan: &BatchSort) -> Self::Result
fn visit_batch_sort(&mut self, plan: &BatchSort) -> Self::Result
Visit BatchSort
, the function should visit the inputs.
Sourcefn visit_batch_exchange(&mut self, plan: &BatchExchange) -> Self::Result
fn visit_batch_exchange(&mut self, plan: &BatchExchange) -> Self::Result
Visit BatchExchange
, the function should visit the inputs.
Sourcefn visit_batch_limit(&mut self, plan: &BatchLimit) -> Self::Result
fn visit_batch_limit(&mut self, plan: &BatchLimit) -> Self::Result
Visit BatchLimit
, the function should visit the inputs.
Sourcefn visit_batch_top_n(&mut self, plan: &BatchTopN) -> Self::Result
fn visit_batch_top_n(&mut self, plan: &BatchTopN) -> Self::Result
Visit BatchTopN
, the function should visit the inputs.
Sourcefn visit_batch_hop_window(&mut self, plan: &BatchHopWindow) -> Self::Result
fn visit_batch_hop_window(&mut self, plan: &BatchHopWindow) -> Self::Result
Visit BatchHopWindow
, the function should visit the inputs.
Sourcefn visit_batch_table_function(
&mut self,
plan: &BatchTableFunction,
) -> Self::Result
fn visit_batch_table_function( &mut self, plan: &BatchTableFunction, ) -> Self::Result
Visit BatchTableFunction
, the function should visit the inputs.
Sourcefn visit_batch_expand(&mut self, plan: &BatchExpand) -> Self::Result
fn visit_batch_expand(&mut self, plan: &BatchExpand) -> Self::Result
Visit BatchExpand
, the function should visit the inputs.
Sourcefn visit_batch_lookup_join(&mut self, plan: &BatchLookupJoin) -> Self::Result
fn visit_batch_lookup_join(&mut self, plan: &BatchLookupJoin) -> Self::Result
Visit BatchLookupJoin
, the function should visit the inputs.
Sourcefn visit_batch_project_set(&mut self, plan: &BatchProjectSet) -> Self::Result
fn visit_batch_project_set(&mut self, plan: &BatchProjectSet) -> Self::Result
Visit BatchProjectSet
, the function should visit the inputs.
Sourcefn visit_batch_union(&mut self, plan: &BatchUnion) -> Self::Result
fn visit_batch_union(&mut self, plan: &BatchUnion) -> Self::Result
Visit BatchUnion
, the function should visit the inputs.
Sourcefn visit_batch_group_top_n(&mut self, plan: &BatchGroupTopN) -> Self::Result
fn visit_batch_group_top_n(&mut self, plan: &BatchGroupTopN) -> Self::Result
Visit BatchGroupTopN
, the function should visit the inputs.
Sourcefn visit_batch_source(&mut self, plan: &BatchSource) -> Self::Result
fn visit_batch_source(&mut self, plan: &BatchSource) -> Self::Result
Visit BatchSource
, the function should visit the inputs.
Sourcefn visit_batch_over_window(&mut self, plan: &BatchOverWindow) -> Self::Result
fn visit_batch_over_window(&mut self, plan: &BatchOverWindow) -> Self::Result
Visit BatchOverWindow
, the function should visit the inputs.
Sourcefn visit_batch_max_one_row(&mut self, plan: &BatchMaxOneRow) -> Self::Result
fn visit_batch_max_one_row(&mut self, plan: &BatchMaxOneRow) -> Self::Result
Visit BatchMaxOneRow
, the function should visit the inputs.
Sourcefn visit_batch_kafka_scan(&mut self, plan: &BatchKafkaScan) -> Self::Result
fn visit_batch_kafka_scan(&mut self, plan: &BatchKafkaScan) -> Self::Result
Visit BatchKafkaScan
, the function should visit the inputs.
Sourcefn visit_batch_iceberg_scan(&mut self, plan: &BatchIcebergScan) -> Self::Result
fn visit_batch_iceberg_scan(&mut self, plan: &BatchIcebergScan) -> Self::Result
Visit BatchIcebergScan
, the function should visit the inputs.
Sourcefn visit_batch_file_scan(&mut self, plan: &BatchFileScan) -> Self::Result
fn visit_batch_file_scan(&mut self, plan: &BatchFileScan) -> Self::Result
Visit BatchFileScan
, the function should visit the inputs.
Sourcefn visit_batch_postgres_query(
&mut self,
plan: &BatchPostgresQuery,
) -> Self::Result
fn visit_batch_postgres_query( &mut self, plan: &BatchPostgresQuery, ) -> Self::Result
Visit BatchPostgresQuery
, the function should visit the inputs.
Sourcefn visit_batch_my_sql_query(&mut self, plan: &BatchMySqlQuery) -> Self::Result
fn visit_batch_my_sql_query(&mut self, plan: &BatchMySqlQuery) -> Self::Result
Visit BatchMySqlQuery
, the function should visit the inputs.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.