Class RelRexDagVisitor

class RelRexDagVisitor

Subclassed by anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalTableInputsVisitor, QueryPlanDagChecker, RexSubQueryIdCollector, ScanNodeTableKeyCollector, SQLOperatorDetector

Public Functions

virtual ~RelRexDagVisitor()
void visit(RelAlgNode const *rel_alg_node)
void visit(RexScalar const *rex_scalar)

Protected Functions

virtual void visit(RelAggregate const *)
void visit(RelCompound const *rel_compound)
void visit(RelFilter const *rel_filter)
void visit(RelJoin const *rel_join)
void visit(RelLeftDeepInnerJoin const *rel_left_deep_inner_join)
virtual void visit(RelLogicalUnion const *)
void visit(RelLogicalValues const *rel_logical_values)
virtual void visit(RelModify const *)
void visit(RelProject const *rel_projection)
virtual void visit(RelScan const *)
virtual void visit(RelSort const *)
void visit(RelTableFunction const *rel_table_function)
void visit(RelTranslatedJoin const *rel_translated_join)
virtual void visit(RexAbstractInput const *)
void visit(RexCase const *rex_case)
void visit(RexFunctionOperator const *rex_function_operator)
void visit(RexInput const *rex_input)
virtual void visit(RexLiteral const *)
void visit(RexOperator const *rex_operator)
virtual void visit(RexRef const *)
void visit(RexSubQuery const *rex_sub_query)
void visit(RexWindowFunctionOperator const *rex_window_function_operator)
void castAndVisit(RelAlgNode const *rel_alg_node)

Private Types

using Handlers = std::array<TypeHandler<RelRexDagVisitor, T>, N>

Private Functions

template<typename T, typename U>
void cast(T const *node)

Private Static Functions

template<typename T, typename ...Ts>
RelRexDagVisitor::Handlers<T, sizeof...(Ts)> make_handlers()