pub struct PlanCloner {
share_map: HashMap<PlanNodeId, PlanRef>,
}
Fields§
Original share node plan id to new share node. Rewriter will rewrite all nodes, but we need to keep the shape of the DAG.
Implementations§
source§impl PlanCloner
impl PlanCloner
pub fn clone_whole_plan(plan: PlanRef) -> PlanRef
Trait Implementations§
source§impl Clone for PlanCloner
impl Clone for PlanCloner
source§fn clone(&self) -> PlanCloner
fn clone(&self) -> PlanCloner
Returns a copy 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 PlanCloner
impl Debug for PlanCloner
source§impl Default for PlanCloner
impl Default for PlanCloner
source§fn default() -> PlanCloner
fn default() -> PlanCloner
Returns the “default value” for a type. Read more
source§impl PlanRewriter for PlanCloner
impl PlanRewriter for PlanCloner
When we use the plan rewriter, we need to take care of the share operator,
because our plan is a DAG rather than a tree.
Make sure this method can keep the shape of DAG.
When we use the plan rewriter, we need to take care of the share operator,
because our plan is a DAG rather than a tree.
Make sure this method can keep the shape of DAG.
fn rewrite(&mut self, plan: PlanRef) -> PlanRef
source§fn rewrite_logical_agg(&mut self, plan: &LogicalAgg) -> PlanRef
fn rewrite_logical_agg(&mut self, plan: &LogicalAgg) -> PlanRef
Visit
LogicalAgg
, the function should rewrite the inputs.source§fn rewrite_logical_apply(&mut self, plan: &LogicalApply) -> PlanRef
fn rewrite_logical_apply(&mut self, plan: &LogicalApply) -> PlanRef
Visit
LogicalApply
, the function should rewrite the inputs.source§fn rewrite_logical_filter(&mut self, plan: &LogicalFilter) -> PlanRef
fn rewrite_logical_filter(&mut self, plan: &LogicalFilter) -> PlanRef
Visit
LogicalFilter
, the function should rewrite the inputs.source§fn rewrite_logical_project(&mut self, plan: &LogicalProject) -> PlanRef
fn rewrite_logical_project(&mut self, plan: &LogicalProject) -> PlanRef
Visit
LogicalProject
, the function should rewrite the inputs.source§fn rewrite_logical_scan(&mut self, plan: &LogicalScan) -> PlanRef
fn rewrite_logical_scan(&mut self, plan: &LogicalScan) -> PlanRef
Visit
LogicalScan
, the function should rewrite the inputs.source§fn rewrite_logical_cdc_scan(&mut self, plan: &LogicalCdcScan) -> PlanRef
fn rewrite_logical_cdc_scan(&mut self, plan: &LogicalCdcScan) -> PlanRef
Visit
LogicalCdcScan
, the function should rewrite the inputs.source§fn rewrite_logical_sys_scan(&mut self, plan: &LogicalSysScan) -> PlanRef
fn rewrite_logical_sys_scan(&mut self, plan: &LogicalSysScan) -> PlanRef
Visit
LogicalSysScan
, the function should rewrite the inputs.source§fn rewrite_logical_source(&mut self, plan: &LogicalSource) -> PlanRef
fn rewrite_logical_source(&mut self, plan: &LogicalSource) -> PlanRef
Visit
LogicalSource
, the function should rewrite the inputs.source§fn rewrite_logical_insert(&mut self, plan: &LogicalInsert) -> PlanRef
fn rewrite_logical_insert(&mut self, plan: &LogicalInsert) -> PlanRef
Visit
LogicalInsert
, the function should rewrite the inputs.source§fn rewrite_logical_delete(&mut self, plan: &LogicalDelete) -> PlanRef
fn rewrite_logical_delete(&mut self, plan: &LogicalDelete) -> PlanRef
Visit
LogicalDelete
, the function should rewrite the inputs.source§fn rewrite_logical_update(&mut self, plan: &LogicalUpdate) -> PlanRef
fn rewrite_logical_update(&mut self, plan: &LogicalUpdate) -> PlanRef
Visit
LogicalUpdate
, the function should rewrite the inputs.source§fn rewrite_logical_join(&mut self, plan: &LogicalJoin) -> PlanRef
fn rewrite_logical_join(&mut self, plan: &LogicalJoin) -> PlanRef
Visit
LogicalJoin
, the function should rewrite the inputs.source§fn rewrite_logical_values(&mut self, plan: &LogicalValues) -> PlanRef
fn rewrite_logical_values(&mut self, plan: &LogicalValues) -> PlanRef
Visit
LogicalValues
, the function should rewrite the inputs.source§fn rewrite_logical_limit(&mut self, plan: &LogicalLimit) -> PlanRef
fn rewrite_logical_limit(&mut self, plan: &LogicalLimit) -> PlanRef
Visit
LogicalLimit
, the function should rewrite the inputs.source§fn rewrite_logical_top_n(&mut self, plan: &LogicalTopN) -> PlanRef
fn rewrite_logical_top_n(&mut self, plan: &LogicalTopN) -> PlanRef
Visit
LogicalTopN
, the function should rewrite the inputs.source§fn rewrite_logical_hop_window(&mut self, plan: &LogicalHopWindow) -> PlanRef
fn rewrite_logical_hop_window(&mut self, plan: &LogicalHopWindow) -> PlanRef
Visit
LogicalHopWindow
, the function should rewrite the inputs.source§fn rewrite_logical_table_function(
&mut self,
plan: &LogicalTableFunction,
) -> PlanRef
fn rewrite_logical_table_function( &mut self, plan: &LogicalTableFunction, ) -> PlanRef
Visit
LogicalTableFunction
, the function should rewrite the inputs.source§fn rewrite_logical_multi_join(&mut self, plan: &LogicalMultiJoin) -> PlanRef
fn rewrite_logical_multi_join(&mut self, plan: &LogicalMultiJoin) -> PlanRef
Visit
LogicalMultiJoin
, the function should rewrite the inputs.source§fn rewrite_logical_expand(&mut self, plan: &LogicalExpand) -> PlanRef
fn rewrite_logical_expand(&mut self, plan: &LogicalExpand) -> PlanRef
Visit
LogicalExpand
, the function should rewrite the inputs.source§fn rewrite_logical_project_set(&mut self, plan: &LogicalProjectSet) -> PlanRef
fn rewrite_logical_project_set(&mut self, plan: &LogicalProjectSet) -> PlanRef
Visit
LogicalProjectSet
, the function should rewrite the inputs.source§fn rewrite_logical_union(&mut self, plan: &LogicalUnion) -> PlanRef
fn rewrite_logical_union(&mut self, plan: &LogicalUnion) -> PlanRef
Visit
LogicalUnion
, the function should rewrite the inputs.source§fn rewrite_logical_over_window(&mut self, plan: &LogicalOverWindow) -> PlanRef
fn rewrite_logical_over_window(&mut self, plan: &LogicalOverWindow) -> PlanRef
Visit
LogicalOverWindow
, the function should rewrite the inputs.source§fn rewrite_logical_now(&mut self, plan: &LogicalNow) -> PlanRef
fn rewrite_logical_now(&mut self, plan: &LogicalNow) -> PlanRef
Visit
LogicalNow
, the function should rewrite the inputs.source§fn rewrite_logical_dedup(&mut self, plan: &LogicalDedup) -> PlanRef
fn rewrite_logical_dedup(&mut self, plan: &LogicalDedup) -> PlanRef
Visit
LogicalDedup
, the function should rewrite the inputs.source§fn rewrite_logical_intersect(&mut self, plan: &LogicalIntersect) -> PlanRef
fn rewrite_logical_intersect(&mut self, plan: &LogicalIntersect) -> PlanRef
Visit
LogicalIntersect
, the function should rewrite the inputs.source§fn rewrite_logical_except(&mut self, plan: &LogicalExcept) -> PlanRef
fn rewrite_logical_except(&mut self, plan: &LogicalExcept) -> PlanRef
Visit
LogicalExcept
, the function should rewrite the inputs.source§fn rewrite_logical_max_one_row(&mut self, plan: &LogicalMaxOneRow) -> PlanRef
fn rewrite_logical_max_one_row(&mut self, plan: &LogicalMaxOneRow) -> PlanRef
Visit
LogicalMaxOneRow
, the function should rewrite the inputs.source§fn rewrite_logical_kafka_scan(&mut self, plan: &LogicalKafkaScan) -> PlanRef
fn rewrite_logical_kafka_scan(&mut self, plan: &LogicalKafkaScan) -> PlanRef
Visit
LogicalKafkaScan
, the function should rewrite the inputs.source§fn rewrite_logical_iceberg_scan(&mut self, plan: &LogicalIcebergScan) -> PlanRef
fn rewrite_logical_iceberg_scan(&mut self, plan: &LogicalIcebergScan) -> PlanRef
Visit
LogicalIcebergScan
, the function should rewrite the inputs.source§fn rewrite_logical_recursive_union(
&mut self,
plan: &LogicalRecursiveUnion,
) -> PlanRef
fn rewrite_logical_recursive_union( &mut self, plan: &LogicalRecursiveUnion, ) -> PlanRef
Visit
LogicalRecursiveUnion
, the function should rewrite the inputs.source§fn rewrite_logical_cte_ref(&mut self, plan: &LogicalCteRef) -> PlanRef
fn rewrite_logical_cte_ref(&mut self, plan: &LogicalCteRef) -> PlanRef
Visit
LogicalCteRef
, the function should rewrite the inputs.source§fn rewrite_logical_change_log(&mut self, plan: &LogicalChangeLog) -> PlanRef
fn rewrite_logical_change_log(&mut self, plan: &LogicalChangeLog) -> PlanRef
Visit
LogicalChangeLog
, the function should rewrite the inputs.source§fn rewrite_logical_file_scan(&mut self, plan: &LogicalFileScan) -> PlanRef
fn rewrite_logical_file_scan(&mut self, plan: &LogicalFileScan) -> PlanRef
Visit
LogicalFileScan
, the function should rewrite the inputs.source§fn rewrite_logical_postgres_query(
&mut self,
plan: &LogicalPostgresQuery,
) -> PlanRef
fn rewrite_logical_postgres_query( &mut self, plan: &LogicalPostgresQuery, ) -> PlanRef
Visit
LogicalPostgresQuery
, the function should rewrite the inputs.source§fn rewrite_logical_my_sql_query(&mut self, plan: &LogicalMySqlQuery) -> PlanRef
fn rewrite_logical_my_sql_query(&mut self, plan: &LogicalMySqlQuery) -> PlanRef
Visit
LogicalMySqlQuery
, the function should rewrite the inputs.source§fn rewrite_batch_simple_agg(&mut self, plan: &BatchSimpleAgg) -> PlanRef
fn rewrite_batch_simple_agg(&mut self, plan: &BatchSimpleAgg) -> PlanRef
Visit
BatchSimpleAgg
, the function should rewrite the inputs.source§fn rewrite_batch_hash_agg(&mut self, plan: &BatchHashAgg) -> PlanRef
fn rewrite_batch_hash_agg(&mut self, plan: &BatchHashAgg) -> PlanRef
Visit
BatchHashAgg
, the function should rewrite the inputs.source§fn rewrite_batch_sort_agg(&mut self, plan: &BatchSortAgg) -> PlanRef
fn rewrite_batch_sort_agg(&mut self, plan: &BatchSortAgg) -> PlanRef
Visit
BatchSortAgg
, the function should rewrite the inputs.source§fn rewrite_batch_project(&mut self, plan: &BatchProject) -> PlanRef
fn rewrite_batch_project(&mut self, plan: &BatchProject) -> PlanRef
Visit
BatchProject
, the function should rewrite the inputs.source§fn rewrite_batch_filter(&mut self, plan: &BatchFilter) -> PlanRef
fn rewrite_batch_filter(&mut self, plan: &BatchFilter) -> PlanRef
Visit
BatchFilter
, the function should rewrite the inputs.source§fn rewrite_batch_insert(&mut self, plan: &BatchInsert) -> PlanRef
fn rewrite_batch_insert(&mut self, plan: &BatchInsert) -> PlanRef
Visit
BatchInsert
, the function should rewrite the inputs.source§fn rewrite_batch_delete(&mut self, plan: &BatchDelete) -> PlanRef
fn rewrite_batch_delete(&mut self, plan: &BatchDelete) -> PlanRef
Visit
BatchDelete
, the function should rewrite the inputs.source§fn rewrite_batch_update(&mut self, plan: &BatchUpdate) -> PlanRef
fn rewrite_batch_update(&mut self, plan: &BatchUpdate) -> PlanRef
Visit
BatchUpdate
, the function should rewrite the inputs.source§fn rewrite_batch_seq_scan(&mut self, plan: &BatchSeqScan) -> PlanRef
fn rewrite_batch_seq_scan(&mut self, plan: &BatchSeqScan) -> PlanRef
Visit
BatchSeqScan
, the function should rewrite the inputs.source§fn rewrite_batch_sys_seq_scan(&mut self, plan: &BatchSysSeqScan) -> PlanRef
fn rewrite_batch_sys_seq_scan(&mut self, plan: &BatchSysSeqScan) -> PlanRef
Visit
BatchSysSeqScan
, the function should rewrite the inputs.source§fn rewrite_batch_log_seq_scan(&mut self, plan: &BatchLogSeqScan) -> PlanRef
fn rewrite_batch_log_seq_scan(&mut self, plan: &BatchLogSeqScan) -> PlanRef
Visit
BatchLogSeqScan
, the function should rewrite the inputs.source§fn rewrite_batch_hash_join(&mut self, plan: &BatchHashJoin) -> PlanRef
fn rewrite_batch_hash_join(&mut self, plan: &BatchHashJoin) -> PlanRef
Visit
BatchHashJoin
, the function should rewrite the inputs.source§fn rewrite_batch_nested_loop_join(
&mut self,
plan: &BatchNestedLoopJoin,
) -> PlanRef
fn rewrite_batch_nested_loop_join( &mut self, plan: &BatchNestedLoopJoin, ) -> PlanRef
Visit
BatchNestedLoopJoin
, the function should rewrite the inputs.source§fn rewrite_batch_values(&mut self, plan: &BatchValues) -> PlanRef
fn rewrite_batch_values(&mut self, plan: &BatchValues) -> PlanRef
Visit
BatchValues
, the function should rewrite the inputs.source§fn rewrite_batch_sort(&mut self, plan: &BatchSort) -> PlanRef
fn rewrite_batch_sort(&mut self, plan: &BatchSort) -> PlanRef
Visit
BatchSort
, the function should rewrite the inputs.source§fn rewrite_batch_exchange(&mut self, plan: &BatchExchange) -> PlanRef
fn rewrite_batch_exchange(&mut self, plan: &BatchExchange) -> PlanRef
Visit
BatchExchange
, the function should rewrite the inputs.source§fn rewrite_batch_limit(&mut self, plan: &BatchLimit) -> PlanRef
fn rewrite_batch_limit(&mut self, plan: &BatchLimit) -> PlanRef
Visit
BatchLimit
, the function should rewrite the inputs.source§fn rewrite_batch_top_n(&mut self, plan: &BatchTopN) -> PlanRef
fn rewrite_batch_top_n(&mut self, plan: &BatchTopN) -> PlanRef
Visit
BatchTopN
, the function should rewrite the inputs.source§fn rewrite_batch_hop_window(&mut self, plan: &BatchHopWindow) -> PlanRef
fn rewrite_batch_hop_window(&mut self, plan: &BatchHopWindow) -> PlanRef
Visit
BatchHopWindow
, the function should rewrite the inputs.source§fn rewrite_batch_table_function(&mut self, plan: &BatchTableFunction) -> PlanRef
fn rewrite_batch_table_function(&mut self, plan: &BatchTableFunction) -> PlanRef
Visit
BatchTableFunction
, the function should rewrite the inputs.source§fn rewrite_batch_expand(&mut self, plan: &BatchExpand) -> PlanRef
fn rewrite_batch_expand(&mut self, plan: &BatchExpand) -> PlanRef
Visit
BatchExpand
, the function should rewrite the inputs.source§fn rewrite_batch_lookup_join(&mut self, plan: &BatchLookupJoin) -> PlanRef
fn rewrite_batch_lookup_join(&mut self, plan: &BatchLookupJoin) -> PlanRef
Visit
BatchLookupJoin
, the function should rewrite the inputs.source§fn rewrite_batch_project_set(&mut self, plan: &BatchProjectSet) -> PlanRef
fn rewrite_batch_project_set(&mut self, plan: &BatchProjectSet) -> PlanRef
Visit
BatchProjectSet
, the function should rewrite the inputs.source§fn rewrite_batch_union(&mut self, plan: &BatchUnion) -> PlanRef
fn rewrite_batch_union(&mut self, plan: &BatchUnion) -> PlanRef
Visit
BatchUnion
, the function should rewrite the inputs.source§fn rewrite_batch_group_top_n(&mut self, plan: &BatchGroupTopN) -> PlanRef
fn rewrite_batch_group_top_n(&mut self, plan: &BatchGroupTopN) -> PlanRef
Visit
BatchGroupTopN
, the function should rewrite the inputs.source§fn rewrite_batch_source(&mut self, plan: &BatchSource) -> PlanRef
fn rewrite_batch_source(&mut self, plan: &BatchSource) -> PlanRef
Visit
BatchSource
, the function should rewrite the inputs.source§fn rewrite_batch_over_window(&mut self, plan: &BatchOverWindow) -> PlanRef
fn rewrite_batch_over_window(&mut self, plan: &BatchOverWindow) -> PlanRef
Visit
BatchOverWindow
, the function should rewrite the inputs.source§fn rewrite_batch_max_one_row(&mut self, plan: &BatchMaxOneRow) -> PlanRef
fn rewrite_batch_max_one_row(&mut self, plan: &BatchMaxOneRow) -> PlanRef
Visit
BatchMaxOneRow
, the function should rewrite the inputs.source§fn rewrite_batch_kafka_scan(&mut self, plan: &BatchKafkaScan) -> PlanRef
fn rewrite_batch_kafka_scan(&mut self, plan: &BatchKafkaScan) -> PlanRef
Visit
BatchKafkaScan
, the function should rewrite the inputs.source§fn rewrite_batch_iceberg_scan(&mut self, plan: &BatchIcebergScan) -> PlanRef
fn rewrite_batch_iceberg_scan(&mut self, plan: &BatchIcebergScan) -> PlanRef
Visit
BatchIcebergScan
, the function should rewrite the inputs.source§fn rewrite_batch_file_scan(&mut self, plan: &BatchFileScan) -> PlanRef
fn rewrite_batch_file_scan(&mut self, plan: &BatchFileScan) -> PlanRef
Visit
BatchFileScan
, the function should rewrite the inputs.source§fn rewrite_batch_postgres_query(&mut self, plan: &BatchPostgresQuery) -> PlanRef
fn rewrite_batch_postgres_query(&mut self, plan: &BatchPostgresQuery) -> PlanRef
Visit
BatchPostgresQuery
, the function should rewrite the inputs.source§fn rewrite_batch_my_sql_query(&mut self, plan: &BatchMySqlQuery) -> PlanRef
fn rewrite_batch_my_sql_query(&mut self, plan: &BatchMySqlQuery) -> PlanRef
Visit
BatchMySqlQuery
, the function should rewrite the inputs.source§fn rewrite_stream_project(&mut self, plan: &StreamProject) -> PlanRef
fn rewrite_stream_project(&mut self, plan: &StreamProject) -> PlanRef
Visit
StreamProject
, the function should rewrite the inputs.source§fn rewrite_stream_filter(&mut self, plan: &StreamFilter) -> PlanRef
fn rewrite_stream_filter(&mut self, plan: &StreamFilter) -> PlanRef
Visit
StreamFilter
, the function should rewrite the inputs.source§fn rewrite_stream_table_scan(&mut self, plan: &StreamTableScan) -> PlanRef
fn rewrite_stream_table_scan(&mut self, plan: &StreamTableScan) -> PlanRef
Visit
StreamTableScan
, the function should rewrite the inputs.source§fn rewrite_stream_cdc_table_scan(
&mut self,
plan: &StreamCdcTableScan,
) -> PlanRef
fn rewrite_stream_cdc_table_scan( &mut self, plan: &StreamCdcTableScan, ) -> PlanRef
Visit
StreamCdcTableScan
, the function should rewrite the inputs.source§fn rewrite_stream_sink(&mut self, plan: &StreamSink) -> PlanRef
fn rewrite_stream_sink(&mut self, plan: &StreamSink) -> PlanRef
Visit
StreamSink
, the function should rewrite the inputs.source§fn rewrite_stream_source(&mut self, plan: &StreamSource) -> PlanRef
fn rewrite_stream_source(&mut self, plan: &StreamSource) -> PlanRef
Visit
StreamSource
, the function should rewrite the inputs.source§fn rewrite_stream_source_scan(&mut self, plan: &StreamSourceScan) -> PlanRef
fn rewrite_stream_source_scan(&mut self, plan: &StreamSourceScan) -> PlanRef
Visit
StreamSourceScan
, the function should rewrite the inputs.source§fn rewrite_stream_hash_join(&mut self, plan: &StreamHashJoin) -> PlanRef
fn rewrite_stream_hash_join(&mut self, plan: &StreamHashJoin) -> PlanRef
Visit
StreamHashJoin
, the function should rewrite the inputs.source§fn rewrite_stream_exchange(&mut self, plan: &StreamExchange) -> PlanRef
fn rewrite_stream_exchange(&mut self, plan: &StreamExchange) -> PlanRef
Visit
StreamExchange
, the function should rewrite the inputs.source§fn rewrite_stream_hash_agg(&mut self, plan: &StreamHashAgg) -> PlanRef
fn rewrite_stream_hash_agg(&mut self, plan: &StreamHashAgg) -> PlanRef
Visit
StreamHashAgg
, the function should rewrite the inputs.source§fn rewrite_stream_simple_agg(&mut self, plan: &StreamSimpleAgg) -> PlanRef
fn rewrite_stream_simple_agg(&mut self, plan: &StreamSimpleAgg) -> PlanRef
Visit
StreamSimpleAgg
, the function should rewrite the inputs.source§fn rewrite_stream_stateless_simple_agg(
&mut self,
plan: &StreamStatelessSimpleAgg,
) -> PlanRef
fn rewrite_stream_stateless_simple_agg( &mut self, plan: &StreamStatelessSimpleAgg, ) -> PlanRef
Visit
StreamStatelessSimpleAgg
, the function should rewrite the inputs.source§fn rewrite_stream_materialize(&mut self, plan: &StreamMaterialize) -> PlanRef
fn rewrite_stream_materialize(&mut self, plan: &StreamMaterialize) -> PlanRef
Visit
StreamMaterialize
, the function should rewrite the inputs.source§fn rewrite_stream_top_n(&mut self, plan: &StreamTopN) -> PlanRef
fn rewrite_stream_top_n(&mut self, plan: &StreamTopN) -> PlanRef
Visit
StreamTopN
, the function should rewrite the inputs.source§fn rewrite_stream_hop_window(&mut self, plan: &StreamHopWindow) -> PlanRef
fn rewrite_stream_hop_window(&mut self, plan: &StreamHopWindow) -> PlanRef
Visit
StreamHopWindow
, the function should rewrite the inputs.source§fn rewrite_stream_delta_join(&mut self, plan: &StreamDeltaJoin) -> PlanRef
fn rewrite_stream_delta_join(&mut self, plan: &StreamDeltaJoin) -> PlanRef
Visit
StreamDeltaJoin
, the function should rewrite the inputs.source§fn rewrite_stream_expand(&mut self, plan: &StreamExpand) -> PlanRef
fn rewrite_stream_expand(&mut self, plan: &StreamExpand) -> PlanRef
Visit
StreamExpand
, the function should rewrite the inputs.source§fn rewrite_stream_dynamic_filter(
&mut self,
plan: &StreamDynamicFilter,
) -> PlanRef
fn rewrite_stream_dynamic_filter( &mut self, plan: &StreamDynamicFilter, ) -> PlanRef
Visit
StreamDynamicFilter
, the function should rewrite the inputs.source§fn rewrite_stream_project_set(&mut self, plan: &StreamProjectSet) -> PlanRef
fn rewrite_stream_project_set(&mut self, plan: &StreamProjectSet) -> PlanRef
Visit
StreamProjectSet
, the function should rewrite the inputs.source§fn rewrite_stream_group_top_n(&mut self, plan: &StreamGroupTopN) -> PlanRef
fn rewrite_stream_group_top_n(&mut self, plan: &StreamGroupTopN) -> PlanRef
Visit
StreamGroupTopN
, the function should rewrite the inputs.source§fn rewrite_stream_union(&mut self, plan: &StreamUnion) -> PlanRef
fn rewrite_stream_union(&mut self, plan: &StreamUnion) -> PlanRef
Visit
StreamUnion
, the function should rewrite the inputs.source§fn rewrite_stream_row_id_gen(&mut self, plan: &StreamRowIdGen) -> PlanRef
fn rewrite_stream_row_id_gen(&mut self, plan: &StreamRowIdGen) -> PlanRef
Visit
StreamRowIdGen
, the function should rewrite the inputs.source§fn rewrite_stream_dml(&mut self, plan: &StreamDml) -> PlanRef
fn rewrite_stream_dml(&mut self, plan: &StreamDml) -> PlanRef
Visit
StreamDml
, the function should rewrite the inputs.source§fn rewrite_stream_now(&mut self, plan: &StreamNow) -> PlanRef
fn rewrite_stream_now(&mut self, plan: &StreamNow) -> PlanRef
Visit
StreamNow
, the function should rewrite the inputs.source§fn rewrite_stream_watermark_filter(
&mut self,
plan: &StreamWatermarkFilter,
) -> PlanRef
fn rewrite_stream_watermark_filter( &mut self, plan: &StreamWatermarkFilter, ) -> PlanRef
Visit
StreamWatermarkFilter
, the function should rewrite the inputs.source§fn rewrite_stream_temporal_join(&mut self, plan: &StreamTemporalJoin) -> PlanRef
fn rewrite_stream_temporal_join(&mut self, plan: &StreamTemporalJoin) -> PlanRef
Visit
StreamTemporalJoin
, the function should rewrite the inputs.source§fn rewrite_stream_values(&mut self, plan: &StreamValues) -> PlanRef
fn rewrite_stream_values(&mut self, plan: &StreamValues) -> PlanRef
Visit
StreamValues
, the function should rewrite the inputs.source§fn rewrite_stream_dedup(&mut self, plan: &StreamDedup) -> PlanRef
fn rewrite_stream_dedup(&mut self, plan: &StreamDedup) -> PlanRef
Visit
StreamDedup
, the function should rewrite the inputs.source§fn rewrite_stream_eowc_over_window(
&mut self,
plan: &StreamEowcOverWindow,
) -> PlanRef
fn rewrite_stream_eowc_over_window( &mut self, plan: &StreamEowcOverWindow, ) -> PlanRef
Visit
StreamEowcOverWindow
, the function should rewrite the inputs.source§fn rewrite_stream_eowc_sort(&mut self, plan: &StreamEowcSort) -> PlanRef
fn rewrite_stream_eowc_sort(&mut self, plan: &StreamEowcSort) -> PlanRef
Visit
StreamEowcSort
, the function should rewrite the inputs.source§fn rewrite_stream_over_window(&mut self, plan: &StreamOverWindow) -> PlanRef
fn rewrite_stream_over_window(&mut self, plan: &StreamOverWindow) -> PlanRef
Visit
StreamOverWindow
, the function should rewrite the inputs.source§fn rewrite_stream_fs_fetch(&mut self, plan: &StreamFsFetch) -> PlanRef
fn rewrite_stream_fs_fetch(&mut self, plan: &StreamFsFetch) -> PlanRef
Visit
StreamFsFetch
, the function should rewrite the inputs.source§fn rewrite_stream_change_log(&mut self, plan: &StreamChangeLog) -> PlanRef
fn rewrite_stream_change_log(&mut self, plan: &StreamChangeLog) -> PlanRef
Visit
StreamChangeLog
, the function should rewrite the inputs.source§fn rewrite_stream_global_approx_percentile(
&mut self,
plan: &StreamGlobalApproxPercentile,
) -> PlanRef
fn rewrite_stream_global_approx_percentile( &mut self, plan: &StreamGlobalApproxPercentile, ) -> PlanRef
Visit
StreamGlobalApproxPercentile
, the function should rewrite the inputs.source§fn rewrite_stream_local_approx_percentile(
&mut self,
plan: &StreamLocalApproxPercentile,
) -> PlanRef
fn rewrite_stream_local_approx_percentile( &mut self, plan: &StreamLocalApproxPercentile, ) -> PlanRef
Visit
StreamLocalApproxPercentile
, the function should rewrite the inputs.source§fn rewrite_stream_row_merge(&mut self, plan: &StreamRowMerge) -> PlanRef
fn rewrite_stream_row_merge(&mut self, plan: &StreamRowMerge) -> PlanRef
Visit
StreamRowMerge
, the function should rewrite the inputs.source§fn rewrite_stream_as_of_join(&mut self, plan: &StreamAsOfJoin) -> PlanRef
fn rewrite_stream_as_of_join(&mut self, plan: &StreamAsOfJoin) -> PlanRef
Visit
StreamAsOfJoin
, the function should rewrite the inputs.Auto Trait Implementations§
impl Freeze for PlanCloner
impl !RefUnwindSafe for PlanCloner
impl !Send for PlanCloner
impl !Sync for PlanCloner
impl Unpin for PlanCloner
impl !UnwindSafe for PlanCloner
Blanket Implementations§
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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<T> Conv for T
impl<T> Conv for T
§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
§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>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<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>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
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)
Convert
&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)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§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<T, U, I> LiftInto<U, I> for Twhere
U: LiftFrom<T, I>,
impl<T, U, I> LiftInto<U, I> for Twhere
U: LiftFrom<T, I>,
source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
source§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
.source§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
.source§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.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<Source> Sculptor<HNil, HNil> for Source
impl<Source> Sculptor<HNil, HNil> for Source
§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.