pub trait StreamPlanVisitor {
type Result: Default;
type DefaultBehavior: DefaultBehavior<Self::Result>;
Show 42 methods
// Required method
fn default_behavior() -> Self::DefaultBehavior;
// Provided methods
fn visit_stream(&mut self, plan: PlanRef<Stream>) -> Self::Result { ... }
fn visit_stream_project(&mut self, plan: &StreamProject) -> Self::Result { ... }
fn visit_stream_filter(&mut self, plan: &StreamFilter) -> Self::Result { ... }
fn visit_stream_table_scan(
&mut self,
plan: &StreamTableScan,
) -> Self::Result { ... }
fn visit_stream_cdc_table_scan(
&mut self,
plan: &StreamCdcTableScan,
) -> Self::Result { ... }
fn visit_stream_sink(&mut self, plan: &StreamSink) -> Self::Result { ... }
fn visit_stream_source(&mut self, plan: &StreamSource) -> Self::Result { ... }
fn visit_stream_source_scan(
&mut self,
plan: &StreamSourceScan,
) -> Self::Result { ... }
fn visit_stream_hash_join(&mut self, plan: &StreamHashJoin) -> Self::Result { ... }
fn visit_stream_exchange(&mut self, plan: &StreamExchange) -> Self::Result { ... }
fn visit_stream_hash_agg(&mut self, plan: &StreamHashAgg) -> Self::Result { ... }
fn visit_stream_simple_agg(
&mut self,
plan: &StreamSimpleAgg,
) -> Self::Result { ... }
fn visit_stream_stateless_simple_agg(
&mut self,
plan: &StreamStatelessSimpleAgg,
) -> Self::Result { ... }
fn visit_stream_materialize(
&mut self,
plan: &StreamMaterialize,
) -> Self::Result { ... }
fn visit_stream_top_n(&mut self, plan: &StreamTopN) -> Self::Result { ... }
fn visit_stream_hop_window(
&mut self,
plan: &StreamHopWindow,
) -> Self::Result { ... }
fn visit_stream_delta_join(
&mut self,
plan: &StreamDeltaJoin,
) -> Self::Result { ... }
fn visit_stream_expand(&mut self, plan: &StreamExpand) -> Self::Result { ... }
fn visit_stream_dynamic_filter(
&mut self,
plan: &StreamDynamicFilter,
) -> Self::Result { ... }
fn visit_stream_project_set(
&mut self,
plan: &StreamProjectSet,
) -> Self::Result { ... }
fn visit_stream_group_top_n(
&mut self,
plan: &StreamGroupTopN,
) -> Self::Result { ... }
fn visit_stream_union(&mut self, plan: &StreamUnion) -> Self::Result { ... }
fn visit_stream_row_id_gen(&mut self, plan: &StreamRowIdGen) -> Self::Result { ... }
fn visit_stream_dml(&mut self, plan: &StreamDml) -> Self::Result { ... }
fn visit_stream_now(&mut self, plan: &StreamNow) -> Self::Result { ... }
fn visit_stream_share(&mut self, plan: &StreamShare) -> Self::Result { ... }
fn visit_stream_watermark_filter(
&mut self,
plan: &StreamWatermarkFilter,
) -> Self::Result { ... }
fn visit_stream_temporal_join(
&mut self,
plan: &StreamTemporalJoin,
) -> Self::Result { ... }
fn visit_stream_values(&mut self, plan: &StreamValues) -> Self::Result { ... }
fn visit_stream_dedup(&mut self, plan: &StreamDedup) -> Self::Result { ... }
fn visit_stream_eowc_over_window(
&mut self,
plan: &StreamEowcOverWindow,
) -> Self::Result { ... }
fn visit_stream_eowc_sort(&mut self, plan: &StreamEowcSort) -> Self::Result { ... }
fn visit_stream_over_window(
&mut self,
plan: &StreamOverWindow,
) -> Self::Result { ... }
fn visit_stream_fs_fetch(&mut self, plan: &StreamFsFetch) -> Self::Result { ... }
fn visit_stream_change_log(
&mut self,
plan: &StreamChangeLog,
) -> Self::Result { ... }
fn visit_stream_global_approx_percentile(
&mut self,
plan: &StreamGlobalApproxPercentile,
) -> Self::Result { ... }
fn visit_stream_local_approx_percentile(
&mut self,
plan: &StreamLocalApproxPercentile,
) -> Self::Result { ... }
fn visit_stream_row_merge(&mut self, plan: &StreamRowMerge) -> Self::Result { ... }
fn visit_stream_as_of_join(&mut self, plan: &StreamAsOfJoin) -> Self::Result { ... }
fn visit_stream_sync_log_store(
&mut self,
plan: &StreamSyncLogStore,
) -> Self::Result { ... }
fn visit_stream_materialized_exprs(
&mut self,
plan: &StreamMaterializedExprs,
) -> 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_stream(&mut self, plan: PlanRef<Stream>) -> Self::Result
Sourcefn visit_stream_project(&mut self, plan: &StreamProject) -> Self::Result
fn visit_stream_project(&mut self, plan: &StreamProject) -> Self::Result
Visit StreamProject
, the function should visit the inputs.
Sourcefn visit_stream_filter(&mut self, plan: &StreamFilter) -> Self::Result
fn visit_stream_filter(&mut self, plan: &StreamFilter) -> Self::Result
Visit StreamFilter
, the function should visit the inputs.
Sourcefn visit_stream_table_scan(&mut self, plan: &StreamTableScan) -> Self::Result
fn visit_stream_table_scan(&mut self, plan: &StreamTableScan) -> Self::Result
Visit StreamTableScan
, the function should visit the inputs.
Sourcefn visit_stream_cdc_table_scan(
&mut self,
plan: &StreamCdcTableScan,
) -> Self::Result
fn visit_stream_cdc_table_scan( &mut self, plan: &StreamCdcTableScan, ) -> Self::Result
Visit StreamCdcTableScan
, the function should visit the inputs.
Sourcefn visit_stream_sink(&mut self, plan: &StreamSink) -> Self::Result
fn visit_stream_sink(&mut self, plan: &StreamSink) -> Self::Result
Visit StreamSink
, the function should visit the inputs.
Sourcefn visit_stream_source(&mut self, plan: &StreamSource) -> Self::Result
fn visit_stream_source(&mut self, plan: &StreamSource) -> Self::Result
Visit StreamSource
, the function should visit the inputs.
Sourcefn visit_stream_source_scan(&mut self, plan: &StreamSourceScan) -> Self::Result
fn visit_stream_source_scan(&mut self, plan: &StreamSourceScan) -> Self::Result
Visit StreamSourceScan
, the function should visit the inputs.
Sourcefn visit_stream_hash_join(&mut self, plan: &StreamHashJoin) -> Self::Result
fn visit_stream_hash_join(&mut self, plan: &StreamHashJoin) -> Self::Result
Visit StreamHashJoin
, the function should visit the inputs.
Sourcefn visit_stream_exchange(&mut self, plan: &StreamExchange) -> Self::Result
fn visit_stream_exchange(&mut self, plan: &StreamExchange) -> Self::Result
Visit StreamExchange
, the function should visit the inputs.
Sourcefn visit_stream_hash_agg(&mut self, plan: &StreamHashAgg) -> Self::Result
fn visit_stream_hash_agg(&mut self, plan: &StreamHashAgg) -> Self::Result
Visit StreamHashAgg
, the function should visit the inputs.
Sourcefn visit_stream_simple_agg(&mut self, plan: &StreamSimpleAgg) -> Self::Result
fn visit_stream_simple_agg(&mut self, plan: &StreamSimpleAgg) -> Self::Result
Visit StreamSimpleAgg
, the function should visit the inputs.
Sourcefn visit_stream_stateless_simple_agg(
&mut self,
plan: &StreamStatelessSimpleAgg,
) -> Self::Result
fn visit_stream_stateless_simple_agg( &mut self, plan: &StreamStatelessSimpleAgg, ) -> Self::Result
Visit StreamStatelessSimpleAgg
, the function should visit the inputs.
Sourcefn visit_stream_materialize(&mut self, plan: &StreamMaterialize) -> Self::Result
fn visit_stream_materialize(&mut self, plan: &StreamMaterialize) -> Self::Result
Visit StreamMaterialize
, the function should visit the inputs.
Sourcefn visit_stream_top_n(&mut self, plan: &StreamTopN) -> Self::Result
fn visit_stream_top_n(&mut self, plan: &StreamTopN) -> Self::Result
Visit StreamTopN
, the function should visit the inputs.
Sourcefn visit_stream_hop_window(&mut self, plan: &StreamHopWindow) -> Self::Result
fn visit_stream_hop_window(&mut self, plan: &StreamHopWindow) -> Self::Result
Visit StreamHopWindow
, the function should visit the inputs.
Sourcefn visit_stream_delta_join(&mut self, plan: &StreamDeltaJoin) -> Self::Result
fn visit_stream_delta_join(&mut self, plan: &StreamDeltaJoin) -> Self::Result
Visit StreamDeltaJoin
, the function should visit the inputs.
Sourcefn visit_stream_expand(&mut self, plan: &StreamExpand) -> Self::Result
fn visit_stream_expand(&mut self, plan: &StreamExpand) -> Self::Result
Visit StreamExpand
, the function should visit the inputs.
Sourcefn visit_stream_dynamic_filter(
&mut self,
plan: &StreamDynamicFilter,
) -> Self::Result
fn visit_stream_dynamic_filter( &mut self, plan: &StreamDynamicFilter, ) -> Self::Result
Visit StreamDynamicFilter
, the function should visit the inputs.
Sourcefn visit_stream_project_set(&mut self, plan: &StreamProjectSet) -> Self::Result
fn visit_stream_project_set(&mut self, plan: &StreamProjectSet) -> Self::Result
Visit StreamProjectSet
, the function should visit the inputs.
Sourcefn visit_stream_group_top_n(&mut self, plan: &StreamGroupTopN) -> Self::Result
fn visit_stream_group_top_n(&mut self, plan: &StreamGroupTopN) -> Self::Result
Visit StreamGroupTopN
, the function should visit the inputs.
Sourcefn visit_stream_union(&mut self, plan: &StreamUnion) -> Self::Result
fn visit_stream_union(&mut self, plan: &StreamUnion) -> Self::Result
Visit StreamUnion
, the function should visit the inputs.
Sourcefn visit_stream_row_id_gen(&mut self, plan: &StreamRowIdGen) -> Self::Result
fn visit_stream_row_id_gen(&mut self, plan: &StreamRowIdGen) -> Self::Result
Visit StreamRowIdGen
, the function should visit the inputs.
Sourcefn visit_stream_dml(&mut self, plan: &StreamDml) -> Self::Result
fn visit_stream_dml(&mut self, plan: &StreamDml) -> Self::Result
Visit StreamDml
, the function should visit the inputs.
Sourcefn visit_stream_now(&mut self, plan: &StreamNow) -> Self::Result
fn visit_stream_now(&mut self, plan: &StreamNow) -> Self::Result
Visit StreamNow
, the function should visit the inputs.
Visit StreamShare
, the function should visit the inputs.
Sourcefn visit_stream_watermark_filter(
&mut self,
plan: &StreamWatermarkFilter,
) -> Self::Result
fn visit_stream_watermark_filter( &mut self, plan: &StreamWatermarkFilter, ) -> Self::Result
Visit StreamWatermarkFilter
, the function should visit the inputs.
Sourcefn visit_stream_temporal_join(
&mut self,
plan: &StreamTemporalJoin,
) -> Self::Result
fn visit_stream_temporal_join( &mut self, plan: &StreamTemporalJoin, ) -> Self::Result
Visit StreamTemporalJoin
, the function should visit the inputs.
Sourcefn visit_stream_values(&mut self, plan: &StreamValues) -> Self::Result
fn visit_stream_values(&mut self, plan: &StreamValues) -> Self::Result
Visit StreamValues
, the function should visit the inputs.
Sourcefn visit_stream_dedup(&mut self, plan: &StreamDedup) -> Self::Result
fn visit_stream_dedup(&mut self, plan: &StreamDedup) -> Self::Result
Visit StreamDedup
, the function should visit the inputs.
Sourcefn visit_stream_eowc_over_window(
&mut self,
plan: &StreamEowcOverWindow,
) -> Self::Result
fn visit_stream_eowc_over_window( &mut self, plan: &StreamEowcOverWindow, ) -> Self::Result
Visit StreamEowcOverWindow
, the function should visit the inputs.
Sourcefn visit_stream_eowc_sort(&mut self, plan: &StreamEowcSort) -> Self::Result
fn visit_stream_eowc_sort(&mut self, plan: &StreamEowcSort) -> Self::Result
Visit StreamEowcSort
, the function should visit the inputs.
Sourcefn visit_stream_over_window(&mut self, plan: &StreamOverWindow) -> Self::Result
fn visit_stream_over_window(&mut self, plan: &StreamOverWindow) -> Self::Result
Visit StreamOverWindow
, the function should visit the inputs.
Sourcefn visit_stream_fs_fetch(&mut self, plan: &StreamFsFetch) -> Self::Result
fn visit_stream_fs_fetch(&mut self, plan: &StreamFsFetch) -> Self::Result
Visit StreamFsFetch
, the function should visit the inputs.
Sourcefn visit_stream_change_log(&mut self, plan: &StreamChangeLog) -> Self::Result
fn visit_stream_change_log(&mut self, plan: &StreamChangeLog) -> Self::Result
Visit StreamChangeLog
, the function should visit the inputs.
Sourcefn visit_stream_global_approx_percentile(
&mut self,
plan: &StreamGlobalApproxPercentile,
) -> Self::Result
fn visit_stream_global_approx_percentile( &mut self, plan: &StreamGlobalApproxPercentile, ) -> Self::Result
Visit StreamGlobalApproxPercentile
, the function should visit the inputs.
Sourcefn visit_stream_local_approx_percentile(
&mut self,
plan: &StreamLocalApproxPercentile,
) -> Self::Result
fn visit_stream_local_approx_percentile( &mut self, plan: &StreamLocalApproxPercentile, ) -> Self::Result
Visit StreamLocalApproxPercentile
, the function should visit the inputs.
Sourcefn visit_stream_row_merge(&mut self, plan: &StreamRowMerge) -> Self::Result
fn visit_stream_row_merge(&mut self, plan: &StreamRowMerge) -> Self::Result
Visit StreamRowMerge
, the function should visit the inputs.
Sourcefn visit_stream_as_of_join(&mut self, plan: &StreamAsOfJoin) -> Self::Result
fn visit_stream_as_of_join(&mut self, plan: &StreamAsOfJoin) -> Self::Result
Visit StreamAsOfJoin
, the function should visit the inputs.
Sourcefn visit_stream_sync_log_store(
&mut self,
plan: &StreamSyncLogStore,
) -> Self::Result
fn visit_stream_sync_log_store( &mut self, plan: &StreamSyncLogStore, ) -> Self::Result
Visit StreamSyncLogStore
, the function should visit the inputs.
Sourcefn visit_stream_materialized_exprs(
&mut self,
plan: &StreamMaterializedExprs,
) -> Self::Result
fn visit_stream_materialized_exprs( &mut self, plan: &StreamMaterializedExprs, ) -> Self::Result
Visit StreamMaterializedExprs
, 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.