risingwave_frontend::optimizer::plan_node::convert

Trait ToDistributedBatch

source
pub trait ToDistributedBatch {
    // Required method
    fn to_distributed(&self) -> Result<PlanRef, RwError>;

    // Provided method
    fn to_distributed_with_required(
        &self,
        required_order: &Order,
        required_dist: &RequiredDist,
    ) -> Result<PlanRef, RwError> { ... }
}
Expand description

ToDistributedBatch allows to convert a batch physical plan to distributed batch plan, by insert exchange node, with an optional required order and distributed.

To implement this trait you can choose one of the two ways:

  • Implement to_distributed and use the default implementation of to_distributed_with_required
  • Or, if a better plan can be generated when a required order is given, you can implement to_distributed_with_required, and implement to_distributed with to_distributed_with_required(&Order::any(), &RequiredDist::Any)

Required Methods§

source

fn to_distributed(&self) -> Result<PlanRef, RwError>

to_distributed is equivalent to to_distributed_with_required(&Order::any(), &RequiredDist::Any)

Provided Methods§

source

fn to_distributed_with_required( &self, required_order: &Order, required_dist: &RequiredDist, ) -> Result<PlanRef, RwError>

insert the exchange in batch physical plan to satisfy the required Distribution and Order.

Implementors§

source§

impl ToDistributedBatch for BatchDelete

source§

impl ToDistributedBatch for BatchExchange

source§

impl ToDistributedBatch for BatchExpand

source§

impl ToDistributedBatch for BatchFileScan

source§

impl ToDistributedBatch for BatchFilter

source§

impl ToDistributedBatch for BatchGroupTopN

source§

impl ToDistributedBatch for BatchHashAgg

source§

impl ToDistributedBatch for BatchHashJoin

source§

impl ToDistributedBatch for BatchHopWindow

source§

impl ToDistributedBatch for BatchIcebergScan

source§

impl ToDistributedBatch for BatchInsert

source§

impl ToDistributedBatch for BatchKafkaScan

source§

impl ToDistributedBatch for BatchLimit

source§

impl ToDistributedBatch for BatchLogSeqScan

source§

impl ToDistributedBatch for BatchLookupJoin

source§

impl ToDistributedBatch for BatchMaxOneRow

source§

impl ToDistributedBatch for BatchMySqlQuery

source§

impl ToDistributedBatch for BatchNestedLoopJoin

source§

impl ToDistributedBatch for BatchOverWindow

source§

impl ToDistributedBatch for BatchPostgresQuery

source§

impl ToDistributedBatch for BatchProject

source§

impl ToDistributedBatch for BatchProjectSet

source§

impl ToDistributedBatch for BatchSeqScan

source§

impl ToDistributedBatch for BatchSimpleAgg

source§

impl ToDistributedBatch for BatchSort

source§

impl ToDistributedBatch for BatchSortAgg

source§

impl ToDistributedBatch for BatchSource

source§

impl ToDistributedBatch for BatchSysSeqScan

source§

impl ToDistributedBatch for BatchTableFunction

source§

impl ToDistributedBatch for BatchTopN

source§

impl ToDistributedBatch for BatchUnion

source§

impl ToDistributedBatch for BatchUpdate

source§

impl ToDistributedBatch for BatchValues

source§

impl ToDistributedBatch for LogicalAgg

source§

impl ToDistributedBatch for LogicalApply

source§

impl ToDistributedBatch for LogicalCdcScan

source§

impl ToDistributedBatch for LogicalChangeLog

source§

impl ToDistributedBatch for LogicalCteRef

source§

impl ToDistributedBatch for LogicalDedup

source§

impl ToDistributedBatch for LogicalDelete

source§

impl ToDistributedBatch for LogicalExcept

source§

impl ToDistributedBatch for LogicalExpand

source§

impl ToDistributedBatch for LogicalFileScan

source§

impl ToDistributedBatch for LogicalFilter

source§

impl ToDistributedBatch for LogicalHopWindow

source§

impl ToDistributedBatch for LogicalIcebergScan

source§

impl ToDistributedBatch for LogicalInsert

source§

impl ToDistributedBatch for LogicalIntersect

source§

impl ToDistributedBatch for LogicalJoin

source§

impl ToDistributedBatch for LogicalKafkaScan

source§

impl ToDistributedBatch for LogicalLimit

source§

impl ToDistributedBatch for LogicalMaxOneRow

source§

impl ToDistributedBatch for LogicalMultiJoin

source§

impl ToDistributedBatch for LogicalMySqlQuery

source§

impl ToDistributedBatch for LogicalNow

source§

impl ToDistributedBatch for LogicalOverWindow

source§

impl ToDistributedBatch for LogicalPostgresQuery

source§

impl ToDistributedBatch for LogicalProject

source§

impl ToDistributedBatch for LogicalProjectSet

source§

impl ToDistributedBatch for LogicalRecursiveUnion

source§

impl ToDistributedBatch for LogicalScan

source§

impl ToDistributedBatch for LogicalShare

source§

impl ToDistributedBatch for LogicalSource

source§

impl ToDistributedBatch for LogicalSysScan

source§

impl ToDistributedBatch for LogicalTableFunction

source§

impl ToDistributedBatch for LogicalTopN

source§

impl ToDistributedBatch for LogicalUnion

source§

impl ToDistributedBatch for LogicalUpdate

source§

impl ToDistributedBatch for LogicalValues

source§

impl ToDistributedBatch for StreamAsOfJoin

source§

impl ToDistributedBatch for StreamCdcTableScan

source§

impl ToDistributedBatch for StreamChangeLog

source§

impl ToDistributedBatch for StreamDedup

source§

impl ToDistributedBatch for StreamDeltaJoin

source§

impl ToDistributedBatch for StreamDml

source§

impl ToDistributedBatch for StreamDynamicFilter

source§

impl ToDistributedBatch for StreamEowcOverWindow

source§

impl ToDistributedBatch for StreamExchange

source§

impl ToDistributedBatch for StreamExpand

source§

impl ToDistributedBatch for StreamFilter

source§

impl ToDistributedBatch for StreamFsFetch

source§

impl ToDistributedBatch for StreamGlobalApproxPercentile

source§

impl ToDistributedBatch for StreamGroupTopN

source§

impl ToDistributedBatch for StreamHashAgg

source§

impl ToDistributedBatch for StreamHashJoin

source§

impl ToDistributedBatch for StreamHopWindow

source§

impl ToDistributedBatch for StreamLocalApproxPercentile

source§

impl ToDistributedBatch for StreamMaterialize

source§

impl ToDistributedBatch for StreamNow

source§

impl ToDistributedBatch for StreamOverWindow

source§

impl ToDistributedBatch for StreamProject

source§

impl ToDistributedBatch for StreamProjectSet

source§

impl ToDistributedBatch for StreamRowIdGen

source§

impl ToDistributedBatch for StreamRowMerge

source§

impl ToDistributedBatch for StreamShare

source§

impl ToDistributedBatch for StreamSimpleAgg

source§

impl ToDistributedBatch for StreamSink

source§

impl ToDistributedBatch for StreamEowcSort

source§

impl ToDistributedBatch for StreamSource

source§

impl ToDistributedBatch for StreamSourceScan

source§

impl ToDistributedBatch for StreamStatelessSimpleAgg

source§

impl ToDistributedBatch for StreamTableScan

source§

impl ToDistributedBatch for StreamTemporalJoin

source§

impl ToDistributedBatch for StreamTopN

source§

impl ToDistributedBatch for StreamUnion

source§

impl ToDistributedBatch for StreamValues

source§

impl ToDistributedBatch for StreamWatermarkFilter