Trait LogicalPlanVisitor

Source
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§

Required Methods§

Source

fn default_behavior() -> Self::DefaultBehavior

The behavior for the default implementations of visit_xxx.

Provided Methods§

Source

fn visit_logical(&mut self, plan: PlanRef<Logical>) -> Self::Result

Source

fn visit_logical_agg(&mut self, plan: &LogicalAgg) -> Self::Result

Visit LogicalAgg , the function should visit the inputs.

Source

fn visit_logical_apply(&mut self, plan: &LogicalApply) -> Self::Result

Visit LogicalApply , the function should visit the inputs.

Source

fn visit_logical_filter(&mut self, plan: &LogicalFilter) -> Self::Result

Visit LogicalFilter , the function should visit the inputs.

Source

fn visit_logical_project(&mut self, plan: &LogicalProject) -> Self::Result

Visit LogicalProject , the function should visit the inputs.

Source

fn visit_logical_scan(&mut self, plan: &LogicalScan) -> Self::Result

Visit LogicalScan , the function should visit the inputs.

Source

fn visit_logical_cdc_scan(&mut self, plan: &LogicalCdcScan) -> Self::Result

Visit LogicalCdcScan , the function should visit the inputs.

Source

fn visit_logical_sys_scan(&mut self, plan: &LogicalSysScan) -> Self::Result

Visit LogicalSysScan , the function should visit the inputs.

Source

fn visit_logical_source(&mut self, plan: &LogicalSource) -> Self::Result

Visit LogicalSource , the function should visit the inputs.

Source

fn visit_logical_insert(&mut self, plan: &LogicalInsert) -> Self::Result

Visit LogicalInsert , the function should visit the inputs.

Source

fn visit_logical_delete(&mut self, plan: &LogicalDelete) -> Self::Result

Visit LogicalDelete , the function should visit the inputs.

Source

fn visit_logical_update(&mut self, plan: &LogicalUpdate) -> Self::Result

Visit LogicalUpdate , the function should visit the inputs.

Source

fn visit_logical_join(&mut self, plan: &LogicalJoin) -> Self::Result

Visit LogicalJoin , the function should visit the inputs.

Source

fn visit_logical_values(&mut self, plan: &LogicalValues) -> Self::Result

Visit LogicalValues , the function should visit the inputs.

Source

fn visit_logical_limit(&mut self, plan: &LogicalLimit) -> Self::Result

Visit LogicalLimit , the function should visit the inputs.

Source

fn visit_logical_top_n(&mut self, plan: &LogicalTopN) -> Self::Result

Visit LogicalTopN , the function should visit the inputs.

Source

fn visit_logical_hop_window(&mut self, plan: &LogicalHopWindow) -> Self::Result

Visit LogicalHopWindow , the function should visit the inputs.

Source

fn visit_logical_table_function( &mut self, plan: &LogicalTableFunction, ) -> Self::Result

Visit LogicalTableFunction , the function should visit the inputs.

Source

fn visit_logical_multi_join(&mut self, plan: &LogicalMultiJoin) -> Self::Result

Visit LogicalMultiJoin , the function should visit the inputs.

Source

fn visit_logical_expand(&mut self, plan: &LogicalExpand) -> Self::Result

Visit LogicalExpand , the function should visit the inputs.

Source

fn visit_logical_project_set( &mut self, plan: &LogicalProjectSet, ) -> Self::Result

Visit LogicalProjectSet , the function should visit the inputs.

Source

fn visit_logical_union(&mut self, plan: &LogicalUnion) -> Self::Result

Visit LogicalUnion , the function should visit the inputs.

Source

fn visit_logical_over_window( &mut self, plan: &LogicalOverWindow, ) -> Self::Result

Visit LogicalOverWindow , the function should visit the inputs.

Source

fn visit_logical_share(&mut self, plan: &LogicalShare) -> Self::Result

Visit LogicalShare , the function should visit the inputs.

Source

fn visit_logical_now(&mut self, plan: &LogicalNow) -> Self::Result

Visit LogicalNow , the function should visit the inputs.

Source

fn visit_logical_dedup(&mut self, plan: &LogicalDedup) -> Self::Result

Visit LogicalDedup , the function should visit the inputs.

Source

fn visit_logical_intersect(&mut self, plan: &LogicalIntersect) -> Self::Result

Visit LogicalIntersect , the function should visit the inputs.

Source

fn visit_logical_except(&mut self, plan: &LogicalExcept) -> Self::Result

Visit LogicalExcept , the function should visit the inputs.

Source

fn visit_logical_max_one_row(&mut self, plan: &LogicalMaxOneRow) -> Self::Result

Visit LogicalMaxOneRow , the function should visit the inputs.

Source

fn visit_logical_kafka_scan(&mut self, plan: &LogicalKafkaScan) -> Self::Result

Visit LogicalKafkaScan , the function should visit the inputs.

Source

fn visit_logical_iceberg_scan( &mut self, plan: &LogicalIcebergScan, ) -> Self::Result

Visit LogicalIcebergScan , the function should visit the inputs.

Source

fn visit_logical_recursive_union( &mut self, plan: &LogicalRecursiveUnion, ) -> Self::Result

Visit LogicalRecursiveUnion , the function should visit the inputs.

Source

fn visit_logical_cte_ref(&mut self, plan: &LogicalCteRef) -> Self::Result

Visit LogicalCteRef , the function should visit the inputs.

Source

fn visit_logical_change_log(&mut self, plan: &LogicalChangeLog) -> Self::Result

Visit LogicalChangeLog , the function should visit the inputs.

Source

fn visit_logical_file_scan(&mut self, plan: &LogicalFileScan) -> Self::Result

Visit LogicalFileScan , the function should visit the inputs.

Source

fn visit_logical_postgres_query( &mut self, plan: &LogicalPostgresQuery, ) -> Self::Result

Visit LogicalPostgresQuery , the function should visit the inputs.

Source

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.

Implementors§

Source§

impl LogicalPlanVisitor for SourceCounter

Source§

impl LogicalPlanVisitor for RelationCollectorVisitor

Source§

impl LogicalPlanVisitor for CheckApplyElimination

Source§

impl LogicalPlanVisitor for HasMaxOneRowApply

Source§

impl LogicalPlanVisitor for CardinalityVisitor

Source§

impl LogicalPlanVisitor for InputRefValidator

Source§

impl LogicalPlanVisitor for StreamKeyChecker

Source§

impl LogicalPlanVisitor for PlanCorrelatedIdFinder

Source§

impl LogicalPlanVisitor for ShareParentCounter

Source§

impl LogicalPlanVisitor for SideEffectVisitor

Source§

impl LogicalPlanVisitor for TemporalJoinValidator