pub trait StreamPlanVisitor {
type Result;
type DefaultBehavior: DefaultBehavior<Self::Result>;
Show 50 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 { ... }
fn visit_stream_vector_index_write(
&mut self,
plan: &StreamVectorIndexWrite,
) -> Self::Result { ... }
fn visit_stream_vector_index_lookup_join(
&mut self,
plan: &StreamVectorIndexLookupJoin,
) -> Self::Result { ... }
fn visit_stream_upstream_sink_union(
&mut self,
plan: &StreamUpstreamSinkUnion,
) -> Self::Result { ... }
fn visit_stream_locality_provider(
&mut self,
plan: &StreamLocalityProvider,
) -> Self::Result { ... }
fn visit_stream_eowc_gap_fill(
&mut self,
plan: &StreamEowcGapFill,
) -> Self::Result { ... }
fn visit_stream_gap_fill(&mut self, plan: &StreamGapFill) -> Self::Result { ... }
fn visit_stream_iceberg_with_pk_index_writer(
&mut self,
plan: &StreamIcebergWithPkIndexWriter,
) -> Self::Result { ... }
fn visit_stream_iceberg_with_pk_index_dv_merger(
&mut self,
plan: &StreamIcebergWithPkIndexDvMerger,
) -> 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
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.
Sourcefn visit_stream_vector_index_write(
&mut self,
plan: &StreamVectorIndexWrite,
) -> Self::Result
fn visit_stream_vector_index_write( &mut self, plan: &StreamVectorIndexWrite, ) -> Self::Result
Visit StreamVectorIndexWrite , the function should visit the inputs.
Sourcefn visit_stream_vector_index_lookup_join(
&mut self,
plan: &StreamVectorIndexLookupJoin,
) -> Self::Result
fn visit_stream_vector_index_lookup_join( &mut self, plan: &StreamVectorIndexLookupJoin, ) -> Self::Result
Visit StreamVectorIndexLookupJoin , the function should visit the inputs.
Sourcefn visit_stream_upstream_sink_union(
&mut self,
plan: &StreamUpstreamSinkUnion,
) -> Self::Result
fn visit_stream_upstream_sink_union( &mut self, plan: &StreamUpstreamSinkUnion, ) -> Self::Result
Visit StreamUpstreamSinkUnion , the function should visit the inputs.
Sourcefn visit_stream_locality_provider(
&mut self,
plan: &StreamLocalityProvider,
) -> Self::Result
fn visit_stream_locality_provider( &mut self, plan: &StreamLocalityProvider, ) -> Self::Result
Visit StreamLocalityProvider , the function should visit the inputs.
Sourcefn visit_stream_eowc_gap_fill(
&mut self,
plan: &StreamEowcGapFill,
) -> Self::Result
fn visit_stream_eowc_gap_fill( &mut self, plan: &StreamEowcGapFill, ) -> Self::Result
Visit StreamEowcGapFill , the function should visit the inputs.
Sourcefn visit_stream_gap_fill(&mut self, plan: &StreamGapFill) -> Self::Result
fn visit_stream_gap_fill(&mut self, plan: &StreamGapFill) -> Self::Result
Visit StreamGapFill , the function should visit the inputs.
Sourcefn visit_stream_iceberg_with_pk_index_writer(
&mut self,
plan: &StreamIcebergWithPkIndexWriter,
) -> Self::Result
fn visit_stream_iceberg_with_pk_index_writer( &mut self, plan: &StreamIcebergWithPkIndexWriter, ) -> Self::Result
Visit StreamIcebergWithPkIndexWriter , the function should visit the inputs.
Sourcefn visit_stream_iceberg_with_pk_index_dv_merger(
&mut self,
plan: &StreamIcebergWithPkIndexDvMerger,
) -> Self::Result
fn visit_stream_iceberg_with_pk_index_dv_merger( &mut self, plan: &StreamIcebergWithPkIndexDvMerger, ) -> Self::Result
Visit StreamIcebergWithPkIndexDvMerger , 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".