pub trait StreamPlanNode: PlanNodeCommon<Stream> + TryToStreamPb { }Expand description
The common trait over all plan nodes. Used by optimizer framework which will treat all node as
dyn PlanNode
We split the trait into lots of sub-trait so that we can easily use macro to impl them.
Implementations§
Source§impl dyn StreamPlanNode
impl dyn StreamPlanNode
Sourcepub fn is<__T: StreamPlanNode>(&self) -> bool
pub fn is<__T: StreamPlanNode>(&self) -> bool
Returns true if the trait object wraps an object of type __T.
Sourcepub fn downcast<__T: StreamPlanNode>(
self: Box<Self>,
) -> Result<Box<__T>, Box<Self>>
pub fn downcast<__T: StreamPlanNode>( self: Box<Self>, ) -> Result<Box<__T>, Box<Self>>
Returns a boxed object from a boxed trait object if the underlying object is of type
__T. Returns the original boxed trait if it isn’t.
Sourcepub fn downcast_rc<__T: StreamPlanNode>(
self: Rc<Self>,
) -> Result<Rc<__T>, Rc<Self>>
pub fn downcast_rc<__T: StreamPlanNode>( self: Rc<Self>, ) -> Result<Rc<__T>, Rc<Self>>
Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of
type __T. Returns the original Rc-ed trait if it isn’t.
Sourcepub fn downcast_ref<__T: StreamPlanNode>(&self) -> Option<&__T>
pub fn downcast_ref<__T: StreamPlanNode>(&self) -> Option<&__T>
Returns a reference to the object within the trait object if it is of type __T, or
None if it isn’t.
Sourcepub fn downcast_mut<__T: StreamPlanNode>(&mut self) -> Option<&mut __T>
pub fn downcast_mut<__T: StreamPlanNode>(&mut self) -> Option<&mut __T>
Returns a mutable reference to the object within the trait object if it is of type
__T, or None if it isn’t.
Source§impl dyn StreamPlanNode
Directly implement methods for PlanNode to access the fields defined in GenericPlanRef.
impl dyn StreamPlanNode
Directly implement methods for PlanNode to access the fields defined in GenericPlanRef.
pub fn id(&self) -> PlanNodeId
pub fn ctx(&self) -> OptimizerContextRef
pub fn schema(&self) -> &Schema
pub fn stream_key(&self) -> Option<&[usize]>
pub fn functional_dependency(&self) -> &FunctionalDependencySet
pub fn explain_myself_to_string(&self) -> String
Source§impl dyn StreamPlanNode
impl dyn StreamPlanNode
Sourcepub fn to_stream_prost(
&self,
state: &mut BuildFragmentGraphState,
) -> Result<PbStreamPlan, SchedulerError>
pub fn to_stream_prost( &self, state: &mut BuildFragmentGraphState, ) -> Result<PbStreamPlan, SchedulerError>
Serialize the plan node and its children to a stream plan proto.
Note that some operators has their own implementation of to_stream_prost. We have a
hook inside to do some ad-hoc things.
Source§impl dyn StreamPlanNode
impl dyn StreamPlanNode
pub fn as_stream_project(&self) -> Option<&StreamProject>
pub fn as_stream_filter(&self) -> Option<&StreamFilter>
pub fn as_stream_table_scan(&self) -> Option<&StreamTableScan>
pub fn as_stream_cdc_table_scan(&self) -> Option<&StreamCdcTableScan>
pub fn as_stream_sink(&self) -> Option<&StreamSink>
pub fn as_stream_source(&self) -> Option<&StreamSource>
pub fn as_stream_source_scan(&self) -> Option<&StreamSourceScan>
pub fn as_stream_hash_join(&self) -> Option<&StreamHashJoin>
pub fn as_stream_exchange(&self) -> Option<&StreamExchange>
pub fn as_stream_hash_agg(&self) -> Option<&StreamHashAgg>
pub fn as_stream_simple_agg(&self) -> Option<&StreamSimpleAgg>
pub fn as_stream_stateless_simple_agg( &self, ) -> Option<&StreamStatelessSimpleAgg>
pub fn as_stream_materialize(&self) -> Option<&StreamMaterialize>
pub fn as_stream_top_n(&self) -> Option<&StreamTopN>
pub fn as_stream_hop_window(&self) -> Option<&StreamHopWindow>
pub fn as_stream_delta_join(&self) -> Option<&StreamDeltaJoin>
pub fn as_stream_expand(&self) -> Option<&StreamExpand>
pub fn as_stream_dynamic_filter(&self) -> Option<&StreamDynamicFilter>
pub fn as_stream_project_set(&self) -> Option<&StreamProjectSet>
pub fn as_stream_group_top_n(&self) -> Option<&StreamGroupTopN>
pub fn as_stream_union(&self) -> Option<&StreamUnion>
pub fn as_stream_row_id_gen(&self) -> Option<&StreamRowIdGen>
pub fn as_stream_dml(&self) -> Option<&StreamDml>
pub fn as_stream_now(&self) -> Option<&StreamNow>
pub fn as_stream_watermark_filter(&self) -> Option<&StreamWatermarkFilter>
pub fn as_stream_temporal_join(&self) -> Option<&StreamTemporalJoin>
pub fn as_stream_values(&self) -> Option<&StreamValues>
pub fn as_stream_dedup(&self) -> Option<&StreamDedup>
pub fn as_stream_eowc_over_window(&self) -> Option<&StreamEowcOverWindow>
pub fn as_stream_eowc_sort(&self) -> Option<&StreamEowcSort>
pub fn as_stream_over_window(&self) -> Option<&StreamOverWindow>
pub fn as_stream_fs_fetch(&self) -> Option<&StreamFsFetch>
pub fn as_stream_change_log(&self) -> Option<&StreamChangeLog>
pub fn as_stream_global_approx_percentile( &self, ) -> Option<&StreamGlobalApproxPercentile>
pub fn as_stream_local_approx_percentile( &self, ) -> Option<&StreamLocalApproxPercentile>
pub fn as_stream_row_merge(&self) -> Option<&StreamRowMerge>
pub fn as_stream_as_of_join(&self) -> Option<&StreamAsOfJoin>
pub fn as_stream_sync_log_store(&self) -> Option<&StreamSyncLogStore>
pub fn as_stream_materialized_exprs(&self) -> Option<&StreamMaterializedExprs>
pub fn as_stream_vector_index_write(&self) -> Option<&StreamVectorIndexWrite>
pub fn as_stream_vector_index_lookup_join( &self, ) -> Option<&StreamVectorIndexLookupJoin>
pub fn as_stream_upstream_sink_union(&self) -> Option<&StreamUpstreamSinkUnion>
pub fn as_stream_locality_provider(&self) -> Option<&StreamLocalityProvider>
pub fn as_stream_eowc_gap_fill(&self) -> Option<&StreamEowcGapFill>
pub fn as_stream_gap_fill(&self) -> Option<&StreamGapFill>
pub fn as_stream_iceberg_with_pk_index_writer( &self, ) -> Option<&StreamIcebergWithPkIndexWriter>
pub fn as_stream_iceberg_with_pk_index_dv_merger( &self, ) -> Option<&StreamIcebergWithPkIndexDvMerger>
Trait Implementations§
impl Eq for dyn StreamPlanNode
Source§impl Hash for dyn StreamPlanNode
impl Hash for dyn StreamPlanNode
Source§impl PartialEq for dyn StreamPlanNode
impl PartialEq for dyn StreamPlanNode
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".