pub struct RelationCollectorVisitor {
    relations: HashSet<TableId>,
}Expand description
TODO(rc): maybe we should rename this to DependencyCollectorVisitor.
Fields§
§relations: HashSet<TableId>Implementations§
Source§impl RelationCollectorVisitor
 
impl RelationCollectorVisitor
fn new_with(relations: HashSet<TableId>) -> Self
Sourcepub fn collect_with<C: ConventionMarker>(
    relations: HashSet<TableId>,
    plan: PlanRef<C>,
) -> HashSet<TableId>where
    Self: PlanVisitor<C>,
 
pub fn collect_with<C: ConventionMarker>(
    relations: HashSet<TableId>,
    plan: PlanRef<C>,
) -> HashSet<TableId>where
    Self: PlanVisitor<C>,
collect_with will collect all the relations in the plan with some default ones, which are
collected during the binding phase. Note that during visit the collected relations might be
duplicated with the default ones. The collection is necessary, because implicit dependencies
on indices can only be discovered after plan is built.
Trait Implementations§
Source§impl BatchPlanVisitor for RelationCollectorVisitor
 
impl BatchPlanVisitor for RelationCollectorVisitor
type Result = ()
type DefaultBehavior = impl DefaultBehavior<<RelationCollectorVisitor as BatchPlanVisitor>::Result>
Source§fn default_behavior() -> Self::DefaultBehavior
 
fn default_behavior() -> Self::DefaultBehavior
The behavior for the default implementations of 
visit_xxx.Source§fn visit_batch_seq_scan(&mut self, plan: &BatchSeqScan)
 
fn visit_batch_seq_scan(&mut self, plan: &BatchSeqScan)
Visit 
BatchSeqScan , the function should visit the inputs.Source§fn visit_batch_source(&mut self, plan: &BatchSource)
 
fn visit_batch_source(&mut self, plan: &BatchSource)
Visit 
BatchSource , the function should visit the inputs.fn visit_batch(&mut self, plan: PlanRef<Batch>) -> Self::Result
Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn visit_batch_get_channel_delta_stats(
    &mut self,
    plan: &BatchGetChannelDeltaStats,
) -> Self::Result
 
fn visit_batch_get_channel_delta_stats( &mut self, plan: &BatchGetChannelDeltaStats, ) -> Self::Result
Visit 
BatchGetChannelDeltaStats , the function should visit the inputs.Source§fn visit_batch_vector_search(
    &mut self,
    plan: &BatchVectorSearch,
) -> Self::Result
 
fn visit_batch_vector_search( &mut self, plan: &BatchVectorSearch, ) -> Self::Result
Visit 
BatchVectorSearch , the function should visit the inputs.Source§impl Clone for RelationCollectorVisitor
 
impl Clone for RelationCollectorVisitor
Source§fn clone(&self) -> RelationCollectorVisitor
 
fn clone(&self) -> RelationCollectorVisitor
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from 
source. Read moreSource§impl Debug for RelationCollectorVisitor
 
impl Debug for RelationCollectorVisitor
Source§impl Default for RelationCollectorVisitor
 
impl Default for RelationCollectorVisitor
Source§fn default() -> RelationCollectorVisitor
 
fn default() -> RelationCollectorVisitor
Returns the “default value” for a type. Read more
Source§impl LogicalPlanVisitor for RelationCollectorVisitor
 
impl LogicalPlanVisitor for RelationCollectorVisitor
type Result = ()
type DefaultBehavior = impl DefaultBehavior<<RelationCollectorVisitor as LogicalPlanVisitor>::Result>
Source§fn default_behavior() -> Self::DefaultBehavior
 
fn default_behavior() -> Self::DefaultBehavior
The behavior for the default implementations of 
visit_xxx.Source§fn visit_logical_scan(&mut self, plan: &LogicalScan)
 
fn visit_logical_scan(&mut self, plan: &LogicalScan)
Visit 
LogicalScan , the function should visit the inputs.fn visit_logical(&mut self, plan: PlanRef<Logical>) -> Self::Result
Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn visit_logical_vector_search(
    &mut self,
    plan: &LogicalVectorSearch,
) -> Self::Result
 
fn visit_logical_vector_search( &mut self, plan: &LogicalVectorSearch, ) -> Self::Result
Visit 
LogicalVectorSearch , the function should visit the inputs.Source§fn visit_logical_get_channel_delta_stats(
    &mut self,
    plan: &LogicalGetChannelDeltaStats,
) -> Self::Result
 
fn visit_logical_get_channel_delta_stats( &mut self, plan: &LogicalGetChannelDeltaStats, ) -> Self::Result
Visit 
LogicalGetChannelDeltaStats , the function should visit the inputs.Source§fn visit_logical_locality_provider(
    &mut self,
    plan: &LogicalLocalityProvider,
) -> Self::Result
 
fn visit_logical_locality_provider( &mut self, plan: &LogicalLocalityProvider, ) -> Self::Result
Visit 
LogicalLocalityProvider , the function should visit the inputs.Source§impl StreamPlanVisitor for RelationCollectorVisitor
 
impl StreamPlanVisitor for RelationCollectorVisitor
type Result = ()
type DefaultBehavior = impl DefaultBehavior<<RelationCollectorVisitor as StreamPlanVisitor>::Result>
Source§fn default_behavior() -> Self::DefaultBehavior
 
fn default_behavior() -> Self::DefaultBehavior
The behavior for the default implementations of 
visit_xxx.Source§fn visit_stream_table_scan(&mut self, plan: &StreamTableScan)
 
fn visit_stream_table_scan(&mut self, plan: &StreamTableScan)
Visit 
StreamTableScan , the function should visit the inputs.Source§fn visit_stream_source(&mut self, plan: &StreamSource)
 
fn visit_stream_source(&mut self, plan: &StreamSource)
Visit 
StreamSource , the function should visit the inputs.fn visit_stream(&mut self, plan: PlanRef<Stream>) -> Self::Result
Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Source§fn 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.Auto Trait Implementations§
impl Freeze for RelationCollectorVisitor
impl RefUnwindSafe for RelationCollectorVisitor
impl Send for RelationCollectorVisitor
impl Sync for RelationCollectorVisitor
impl Unpin for RelationCollectorVisitor
impl UnwindSafe for RelationCollectorVisitor
Blanket Implementations§
§impl<T> AsAny for T
 
impl<T> AsAny for T
§fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)
 
fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)
Obtains a 
dyn Any reference to the object: Read more§fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send>
 
fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send>
Obtains an 
Arc<dyn Any> reference to the object: Read more§fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>
 
fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>
Converts the object to 
Box<dyn Any>: Read more§fn type_name(&self) -> &'static str
 
fn type_name(&self) -> &'static str
Convenient wrapper for 
std::any::type_name, since Any does not provide it and
Any::type_id is useless as a debugging aid (its Debug is just a mess of hex digits).Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
§impl<T> Conv for T
 
impl<T> Conv for T
§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere
    T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
 
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts 
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
 
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts 
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
 
fn as_any(&self) -> &(dyn Any + 'static)
Converts 
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
 
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts 
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
 
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
 
impl<T> DowncastSync for T
§impl<T> FmtForward for T
 
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
 
fn fmt_binary(self) -> FmtBinary<Self>where
    Self: Binary,
Causes 
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
 
fn fmt_display(self) -> FmtDisplay<Self>where
    Self: Display,
Causes 
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
 
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
    Self: LowerExp,
Causes 
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
 
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
    Self: LowerHex,
Causes 
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
 
fn fmt_octal(self) -> FmtOctal<Self>where
    Self: Octal,
Causes 
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
 
fn fmt_pointer(self) -> FmtPointer<Self>where
    Self: Pointer,
Causes 
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
 
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
    Self: UpperExp,
Causes 
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
 
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
    Self: UpperHex,
Causes 
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
    &'a Self: for<'a> IntoIterator,
 
fn fmt_list(self) -> FmtList<Self>where
    &'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
§impl<T> FutureExt for T
 
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
 
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
 
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
 
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
 
fn into_request(self) -> Request<T>
Wrap the input message 
T in a tonic::Request§impl<T> IntoResult<T> for T
 
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
Creates a shared type from an unshared type.
§impl<M> MetricVecRelabelExt for M
 
impl<M> MetricVecRelabelExt for M
§fn relabel(
    self,
    metric_level: MetricLevel,
    relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
 
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to [
RelabeledMetricVec::with_metric_level].§fn relabel_n(
    self,
    metric_level: MetricLevel,
    relabel_threshold: MetricLevel,
    relabel_num: usize,
) -> RelabeledMetricVec<M>
 
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
Equivalent to [
RelabeledMetricVec::with_metric_level_relabel_n].§fn relabel_debug_1(
    self,
    relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
 
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to [
RelabeledMetricVec::with_metric_level_relabel_n] with metric_level set to
MetricLevel::Debug and relabel_num set to 1.§impl<T> Pipe for Twhere
    T: ?Sized,
 
impl<T> Pipe for Twhere
    T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
 
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
    Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
    R: 'a,
Borrows 
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
 
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
    R: 'a,
Mutably borrows 
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
 
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
    &'a mut self,
    func: impl FnOnce(&'a mut B) -> R,
) -> R
 
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
 
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
Borrows 
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
 
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
Mutably borrows 
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
 
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
Borrows 
self, then passes self.deref() into the pipe function.Source§impl<V> PlanVisitor<Batch> for Vwhere
    V: BatchPlanVisitor,
 
impl<V> PlanVisitor<Batch> for Vwhere
    V: BatchPlanVisitor,
Source§impl<V> PlanVisitor<Logical> for Vwhere
    V: LogicalPlanVisitor,
 
impl<V> PlanVisitor<Logical> for Vwhere
    V: LogicalPlanVisitor,
Source§impl<V> PlanVisitor<Stream> for Vwhere
    V: StreamPlanVisitor,
 
impl<V> PlanVisitor<Stream> for Vwhere
    V: StreamPlanVisitor,
§impl<T> Pointable for T
 
impl<T> Pointable for T
§impl<T> Scope for T
 
impl<T> Scope for T
§impl<T> Tap for T
 
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
 
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the 
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
 
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the 
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
 
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the 
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
 
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the 
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
 
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the 
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
 
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the 
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
 
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls 
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
 
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls 
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
 
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls 
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
 
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
Calls 
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
 
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls 
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
 
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
Calls 
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
 
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls 
.tap_deref() only in debug builds, and is erased in release
builds.