risingwave_frontend::optimizer::plan_node

Trait ExprRewritable

source
pub trait ExprRewritable {
    // Provided methods
    fn has_rewritable_expr(&self) -> bool { ... }
    fn rewrite_exprs(&self, _r: &mut dyn ExprRewriter) -> PlanRef { ... }
}
Expand description

Rewrites expressions in a PlanRef. Due to Share operator, the ExprRewriter needs to be idempotent i.e., applying it more than once to the same ExprImpl will be a noop on subsequent applications. rewrite_exprs should only return a plan with the given node modified. To rewrite recursively, call rewrite_exprs_recursive on RewriteExprsRecursive.

Provided Methods§

Implementors§

source§

impl ExprRewritable for BatchDelete

source§

impl ExprRewritable for BatchExchange

source§

impl ExprRewritable for BatchExpand

source§

impl ExprRewritable for BatchFileScan

source§

impl ExprRewritable for BatchFilter

source§

impl ExprRewritable for BatchGroupTopN

source§

impl ExprRewritable for BatchHashAgg

source§

impl ExprRewritable for BatchHashJoin

source§

impl ExprRewritable for BatchHopWindow

source§

impl ExprRewritable for BatchIcebergScan

source§

impl ExprRewritable for BatchInsert

source§

impl ExprRewritable for BatchKafkaScan

source§

impl ExprRewritable for BatchLimit

source§

impl ExprRewritable for BatchLogSeqScan

source§

impl ExprRewritable for BatchLookupJoin

source§

impl ExprRewritable for BatchMaxOneRow

source§

impl ExprRewritable for BatchMySqlQuery

source§

impl ExprRewritable for BatchNestedLoopJoin

source§

impl ExprRewritable for BatchOverWindow

source§

impl ExprRewritable for BatchPostgresQuery

source§

impl ExprRewritable for BatchProject

source§

impl ExprRewritable for BatchProjectSet

source§

impl ExprRewritable for BatchSeqScan

source§

impl ExprRewritable for BatchSimpleAgg

source§

impl ExprRewritable for BatchSort

source§

impl ExprRewritable for BatchSortAgg

source§

impl ExprRewritable for BatchSource

source§

impl ExprRewritable for BatchSysSeqScan

source§

impl ExprRewritable for BatchTableFunction

source§

impl ExprRewritable for BatchTopN

source§

impl ExprRewritable for BatchUnion

source§

impl ExprRewritable for BatchUpdate

source§

impl ExprRewritable for BatchValues

source§

impl ExprRewritable for LogicalAgg

source§

impl ExprRewritable for LogicalApply

source§

impl ExprRewritable for LogicalCdcScan

source§

impl ExprRewritable for LogicalChangeLog

source§

impl ExprRewritable for LogicalCteRef

source§

impl ExprRewritable for LogicalDedup

source§

impl ExprRewritable for LogicalDelete

source§

impl ExprRewritable for LogicalExcept

source§

impl ExprRewritable for LogicalExpand

source§

impl ExprRewritable for LogicalFileScan

source§

impl ExprRewritable for LogicalFilter

source§

impl ExprRewritable for LogicalHopWindow

source§

impl ExprRewritable for LogicalIcebergScan

source§

impl ExprRewritable for LogicalInsert

source§

impl ExprRewritable for LogicalIntersect

source§

impl ExprRewritable for LogicalJoin

source§

impl ExprRewritable for LogicalKafkaScan

source§

impl ExprRewritable for LogicalLimit

source§

impl ExprRewritable for LogicalMaxOneRow

source§

impl ExprRewritable for LogicalMultiJoin

source§

impl ExprRewritable for LogicalMySqlQuery

source§

impl ExprRewritable for LogicalNow

source§

impl ExprRewritable for LogicalOverWindow

source§

impl ExprRewritable for LogicalPostgresQuery

source§

impl ExprRewritable for LogicalProject

source§

impl ExprRewritable for LogicalProjectSet

source§

impl ExprRewritable for LogicalRecursiveUnion

source§

impl ExprRewritable for LogicalScan

source§

impl ExprRewritable for LogicalShare

source§

impl ExprRewritable for LogicalSource

source§

impl ExprRewritable for LogicalSysScan

source§

impl ExprRewritable for LogicalTableFunction

source§

impl ExprRewritable for LogicalTopN

source§

impl ExprRewritable for LogicalUnion

source§

impl ExprRewritable for LogicalUpdate

source§

impl ExprRewritable for LogicalValues

source§

impl ExprRewritable for StreamAsOfJoin

source§

impl ExprRewritable for StreamCdcTableScan

source§

impl ExprRewritable for StreamChangeLog

source§

impl ExprRewritable for StreamDedup

source§

impl ExprRewritable for StreamDeltaJoin

source§

impl ExprRewritable for StreamDml

source§

impl ExprRewritable for StreamDynamicFilter

source§

impl ExprRewritable for StreamEowcOverWindow

source§

impl ExprRewritable for StreamExchange

source§

impl ExprRewritable for StreamExpand

source§

impl ExprRewritable for StreamFilter

source§

impl ExprRewritable for StreamFsFetch

source§

impl ExprRewritable for StreamGlobalApproxPercentile

source§

impl ExprRewritable for StreamGroupTopN

source§

impl ExprRewritable for StreamHashAgg

source§

impl ExprRewritable for StreamHashJoin

source§

impl ExprRewritable for StreamHopWindow

source§

impl ExprRewritable for StreamLocalApproxPercentile

source§

impl ExprRewritable for StreamMaterialize

source§

impl ExprRewritable for StreamNow

source§

impl ExprRewritable for StreamOverWindow

source§

impl ExprRewritable for StreamProject

source§

impl ExprRewritable for StreamProjectSet

source§

impl ExprRewritable for StreamRowIdGen

source§

impl ExprRewritable for StreamRowMerge

source§

impl ExprRewritable for StreamShare

source§

impl ExprRewritable for StreamSimpleAgg

source§

impl ExprRewritable for StreamSink

source§

impl ExprRewritable for StreamEowcSort

source§

impl ExprRewritable for StreamSource

source§

impl ExprRewritable for StreamSourceScan

source§

impl ExprRewritable for StreamStatelessSimpleAgg

source§

impl ExprRewritable for StreamTableScan

source§

impl ExprRewritable for StreamTemporalJoin

source§

impl ExprRewritable for StreamTopN

source§

impl ExprRewritable for StreamUnion

source§

impl ExprRewritable for StreamValues

source§

impl ExprRewritable for StreamWatermarkFilter

source§

impl ExprRewritable for PlanRef