pub trait LogicalPlanVisitor {
type Result: Default;
type DefaultBehavior: DefaultBehavior<Self::Result>;
Show 38 methods
// Required method
fn default_behavior() -> Self::DefaultBehavior;
// Provided methods
fn visit_logical(&mut self, plan: PlanRef<Logical>) -> Self::Result { ... }
fn visit_logical_agg(&mut self, plan: &LogicalAgg) -> Self::Result { ... }
fn visit_logical_apply(&mut self, plan: &LogicalApply) -> Self::Result { ... }
fn visit_logical_filter(&mut self, plan: &LogicalFilter) -> Self::Result { ... }
fn visit_logical_project(&mut self, plan: &LogicalProject) -> Self::Result { ... }
fn visit_logical_scan(&mut self, plan: &LogicalScan) -> Self::Result { ... }
fn visit_logical_cdc_scan(&mut self, plan: &LogicalCdcScan) -> Self::Result { ... }
fn visit_logical_sys_scan(&mut self, plan: &LogicalSysScan) -> Self::Result { ... }
fn visit_logical_source(&mut self, plan: &LogicalSource) -> Self::Result { ... }
fn visit_logical_insert(&mut self, plan: &LogicalInsert) -> Self::Result { ... }
fn visit_logical_delete(&mut self, plan: &LogicalDelete) -> Self::Result { ... }
fn visit_logical_update(&mut self, plan: &LogicalUpdate) -> Self::Result { ... }
fn visit_logical_join(&mut self, plan: &LogicalJoin) -> Self::Result { ... }
fn visit_logical_values(&mut self, plan: &LogicalValues) -> Self::Result { ... }
fn visit_logical_limit(&mut self, plan: &LogicalLimit) -> Self::Result { ... }
fn visit_logical_top_n(&mut self, plan: &LogicalTopN) -> Self::Result { ... }
fn visit_logical_hop_window(
&mut self,
plan: &LogicalHopWindow,
) -> Self::Result { ... }
fn visit_logical_table_function(
&mut self,
plan: &LogicalTableFunction,
) -> Self::Result { ... }
fn visit_logical_multi_join(
&mut self,
plan: &LogicalMultiJoin,
) -> Self::Result { ... }
fn visit_logical_expand(&mut self, plan: &LogicalExpand) -> Self::Result { ... }
fn visit_logical_project_set(
&mut self,
plan: &LogicalProjectSet,
) -> Self::Result { ... }
fn visit_logical_union(&mut self, plan: &LogicalUnion) -> Self::Result { ... }
fn visit_logical_over_window(
&mut self,
plan: &LogicalOverWindow,
) -> Self::Result { ... }
fn visit_logical_share(&mut self, plan: &LogicalShare) -> Self::Result { ... }
fn visit_logical_now(&mut self, plan: &LogicalNow) -> Self::Result { ... }
fn visit_logical_dedup(&mut self, plan: &LogicalDedup) -> Self::Result { ... }
fn visit_logical_intersect(
&mut self,
plan: &LogicalIntersect,
) -> Self::Result { ... }
fn visit_logical_except(&mut self, plan: &LogicalExcept) -> Self::Result { ... }
fn visit_logical_max_one_row(
&mut self,
plan: &LogicalMaxOneRow,
) -> Self::Result { ... }
fn visit_logical_kafka_scan(
&mut self,
plan: &LogicalKafkaScan,
) -> Self::Result { ... }
fn visit_logical_iceberg_scan(
&mut self,
plan: &LogicalIcebergScan,
) -> Self::Result { ... }
fn visit_logical_recursive_union(
&mut self,
plan: &LogicalRecursiveUnion,
) -> Self::Result { ... }
fn visit_logical_cte_ref(&mut self, plan: &LogicalCteRef) -> Self::Result { ... }
fn visit_logical_change_log(
&mut self,
plan: &LogicalChangeLog,
) -> Self::Result { ... }
fn visit_logical_file_scan(
&mut self,
plan: &LogicalFileScan,
) -> Self::Result { ... }
fn visit_logical_postgres_query(
&mut self,
plan: &LogicalPostgresQuery,
) -> Self::Result { ... }
fn visit_logical_my_sql_query(
&mut self,
plan: &LogicalMySqlQuery,
) -> 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_logical(&mut self, plan: PlanRef<Logical>) -> Self::Result
Sourcefn visit_logical_agg(&mut self, plan: &LogicalAgg) -> Self::Result
fn visit_logical_agg(&mut self, plan: &LogicalAgg) -> Self::Result
Visit LogicalAgg
, the function should visit the inputs.
Sourcefn visit_logical_apply(&mut self, plan: &LogicalApply) -> Self::Result
fn visit_logical_apply(&mut self, plan: &LogicalApply) -> Self::Result
Visit LogicalApply
, the function should visit the inputs.
Sourcefn visit_logical_filter(&mut self, plan: &LogicalFilter) -> Self::Result
fn visit_logical_filter(&mut self, plan: &LogicalFilter) -> Self::Result
Visit LogicalFilter
, the function should visit the inputs.
Sourcefn visit_logical_project(&mut self, plan: &LogicalProject) -> Self::Result
fn visit_logical_project(&mut self, plan: &LogicalProject) -> Self::Result
Visit LogicalProject
, the function should visit the inputs.
Sourcefn visit_logical_scan(&mut self, plan: &LogicalScan) -> Self::Result
fn visit_logical_scan(&mut self, plan: &LogicalScan) -> Self::Result
Visit LogicalScan
, the function should visit the inputs.
Sourcefn visit_logical_cdc_scan(&mut self, plan: &LogicalCdcScan) -> Self::Result
fn visit_logical_cdc_scan(&mut self, plan: &LogicalCdcScan) -> Self::Result
Visit LogicalCdcScan
, the function should visit the inputs.
Sourcefn visit_logical_sys_scan(&mut self, plan: &LogicalSysScan) -> Self::Result
fn visit_logical_sys_scan(&mut self, plan: &LogicalSysScan) -> Self::Result
Visit LogicalSysScan
, the function should visit the inputs.
Sourcefn visit_logical_source(&mut self, plan: &LogicalSource) -> Self::Result
fn visit_logical_source(&mut self, plan: &LogicalSource) -> Self::Result
Visit LogicalSource
, the function should visit the inputs.
Sourcefn visit_logical_insert(&mut self, plan: &LogicalInsert) -> Self::Result
fn visit_logical_insert(&mut self, plan: &LogicalInsert) -> Self::Result
Visit LogicalInsert
, the function should visit the inputs.
Sourcefn visit_logical_delete(&mut self, plan: &LogicalDelete) -> Self::Result
fn visit_logical_delete(&mut self, plan: &LogicalDelete) -> Self::Result
Visit LogicalDelete
, the function should visit the inputs.
Sourcefn visit_logical_update(&mut self, plan: &LogicalUpdate) -> Self::Result
fn visit_logical_update(&mut self, plan: &LogicalUpdate) -> Self::Result
Visit LogicalUpdate
, the function should visit the inputs.
Sourcefn visit_logical_join(&mut self, plan: &LogicalJoin) -> Self::Result
fn visit_logical_join(&mut self, plan: &LogicalJoin) -> Self::Result
Visit LogicalJoin
, the function should visit the inputs.
Sourcefn visit_logical_values(&mut self, plan: &LogicalValues) -> Self::Result
fn visit_logical_values(&mut self, plan: &LogicalValues) -> Self::Result
Visit LogicalValues
, the function should visit the inputs.
Sourcefn visit_logical_limit(&mut self, plan: &LogicalLimit) -> Self::Result
fn visit_logical_limit(&mut self, plan: &LogicalLimit) -> Self::Result
Visit LogicalLimit
, the function should visit the inputs.
Sourcefn visit_logical_top_n(&mut self, plan: &LogicalTopN) -> Self::Result
fn visit_logical_top_n(&mut self, plan: &LogicalTopN) -> Self::Result
Visit LogicalTopN
, the function should visit the inputs.
Sourcefn visit_logical_hop_window(&mut self, plan: &LogicalHopWindow) -> Self::Result
fn visit_logical_hop_window(&mut self, plan: &LogicalHopWindow) -> Self::Result
Visit LogicalHopWindow
, the function should visit the inputs.
Sourcefn visit_logical_table_function(
&mut self,
plan: &LogicalTableFunction,
) -> Self::Result
fn visit_logical_table_function( &mut self, plan: &LogicalTableFunction, ) -> Self::Result
Visit LogicalTableFunction
, the function should visit the inputs.
Sourcefn visit_logical_multi_join(&mut self, plan: &LogicalMultiJoin) -> Self::Result
fn visit_logical_multi_join(&mut self, plan: &LogicalMultiJoin) -> Self::Result
Visit LogicalMultiJoin
, the function should visit the inputs.
Sourcefn visit_logical_expand(&mut self, plan: &LogicalExpand) -> Self::Result
fn visit_logical_expand(&mut self, plan: &LogicalExpand) -> Self::Result
Visit LogicalExpand
, the function should visit the inputs.
Sourcefn visit_logical_project_set(
&mut self,
plan: &LogicalProjectSet,
) -> Self::Result
fn visit_logical_project_set( &mut self, plan: &LogicalProjectSet, ) -> Self::Result
Visit LogicalProjectSet
, the function should visit the inputs.
Sourcefn visit_logical_union(&mut self, plan: &LogicalUnion) -> Self::Result
fn visit_logical_union(&mut self, plan: &LogicalUnion) -> Self::Result
Visit LogicalUnion
, the function should visit the inputs.
Sourcefn visit_logical_over_window(
&mut self,
plan: &LogicalOverWindow,
) -> Self::Result
fn visit_logical_over_window( &mut self, plan: &LogicalOverWindow, ) -> Self::Result
Visit LogicalOverWindow
, the function should visit the inputs.
Visit LogicalShare
, the function should visit the inputs.
Sourcefn visit_logical_now(&mut self, plan: &LogicalNow) -> Self::Result
fn visit_logical_now(&mut self, plan: &LogicalNow) -> Self::Result
Visit LogicalNow
, the function should visit the inputs.
Sourcefn visit_logical_dedup(&mut self, plan: &LogicalDedup) -> Self::Result
fn visit_logical_dedup(&mut self, plan: &LogicalDedup) -> Self::Result
Visit LogicalDedup
, the function should visit the inputs.
Sourcefn visit_logical_intersect(&mut self, plan: &LogicalIntersect) -> Self::Result
fn visit_logical_intersect(&mut self, plan: &LogicalIntersect) -> Self::Result
Visit LogicalIntersect
, the function should visit the inputs.
Sourcefn visit_logical_except(&mut self, plan: &LogicalExcept) -> Self::Result
fn visit_logical_except(&mut self, plan: &LogicalExcept) -> Self::Result
Visit LogicalExcept
, the function should visit the inputs.
Sourcefn visit_logical_max_one_row(&mut self, plan: &LogicalMaxOneRow) -> Self::Result
fn visit_logical_max_one_row(&mut self, plan: &LogicalMaxOneRow) -> Self::Result
Visit LogicalMaxOneRow
, the function should visit the inputs.
Sourcefn visit_logical_kafka_scan(&mut self, plan: &LogicalKafkaScan) -> Self::Result
fn visit_logical_kafka_scan(&mut self, plan: &LogicalKafkaScan) -> Self::Result
Visit LogicalKafkaScan
, the function should visit the inputs.
Sourcefn visit_logical_iceberg_scan(
&mut self,
plan: &LogicalIcebergScan,
) -> Self::Result
fn visit_logical_iceberg_scan( &mut self, plan: &LogicalIcebergScan, ) -> Self::Result
Visit LogicalIcebergScan
, the function should visit the inputs.
Sourcefn visit_logical_recursive_union(
&mut self,
plan: &LogicalRecursiveUnion,
) -> Self::Result
fn visit_logical_recursive_union( &mut self, plan: &LogicalRecursiveUnion, ) -> Self::Result
Visit LogicalRecursiveUnion
, the function should visit the inputs.
Sourcefn visit_logical_cte_ref(&mut self, plan: &LogicalCteRef) -> Self::Result
fn visit_logical_cte_ref(&mut self, plan: &LogicalCteRef) -> Self::Result
Visit LogicalCteRef
, the function should visit the inputs.
Sourcefn visit_logical_change_log(&mut self, plan: &LogicalChangeLog) -> Self::Result
fn visit_logical_change_log(&mut self, plan: &LogicalChangeLog) -> Self::Result
Visit LogicalChangeLog
, the function should visit the inputs.
Sourcefn visit_logical_file_scan(&mut self, plan: &LogicalFileScan) -> Self::Result
fn visit_logical_file_scan(&mut self, plan: &LogicalFileScan) -> Self::Result
Visit LogicalFileScan
, the function should visit the inputs.
Sourcefn visit_logical_postgres_query(
&mut self,
plan: &LogicalPostgresQuery,
) -> Self::Result
fn visit_logical_postgres_query( &mut self, plan: &LogicalPostgresQuery, ) -> Self::Result
Visit LogicalPostgresQuery
, the function should visit the inputs.
Sourcefn visit_logical_my_sql_query(
&mut self,
plan: &LogicalMySqlQuery,
) -> Self::Result
fn visit_logical_my_sql_query( &mut self, plan: &LogicalMySqlQuery, ) -> Self::Result
Visit LogicalMySqlQuery
, 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.