Class anonymous_namespace{RelAlgDagBuilder.cpp}::RexWindowFuncReplacementVisitorΒΆ

class

Replaces the first occurrence of a WindowFunctionOperator rex with the provided replacement_rex. Typically used for splitting a complex rex into two simpler rexes, and forwarding one of the rexes to a later node. The forwarded rex is then replaced with a RexInput using this visitor. Note that for window function replacement, the overloads in this visitor must match the overloads in the detection visitor above, to ensure a detected window function expression is properly replaced.

Public Functions

anonymous_namespace{RelAlgDagBuilder.cpp}::RexWindowFuncReplacementVisitor::RexWindowFuncReplacementVisitor(std::unique_ptr< const RexScalar > replacement_rex)
anonymous_namespace{RelAlgDagBuilder.cpp}::RexWindowFuncReplacementVisitor::~RexWindowFuncReplacementVisitor()

Protected Functions

RetType anonymous_namespace{RelAlgDagBuilder.cpp}::RexWindowFuncReplacementVisitor::visitOperator(const RexOperator * rex_operator) const
RetType anonymous_namespace{RelAlgDagBuilder.cpp}::RexWindowFuncReplacementVisitor::visitCase(const RexCase * rex_case) const

Private Functions

bool anonymous_namespace{RelAlgDagBuilder.cpp}::RexWindowFuncReplacementVisitor::should_replace_operand(const RexScalar * rex) const

Private Members

std::unique_ptr<const RexScalar> anonymous_namespace{RelAlgDagBuilder.cpp}::RexWindowFuncReplacementVisitor::replacement_rex_