30 #include "../RelAlgDag.h"
60 virtual void visit(RexLiteral
const*) {}
63 virtual void visit(RexSubQuery
const*);
69 template <
typename T,
typename U>
71 visit(dynamic_cast<U const*>(node));
74 template <
typename T,
size_t N>
75 using Handlers = std::array<TypeHandler<RelRexDagVisitor, T>,
N>;
77 template <
typename T,
typename... Ts>
virtual void visit(RelScan const *)
virtual void visit(RelAlgNode const *)
virtual void visit(RexRef const *)
virtual void visit(RexAbstractInput const *)
std::array< TypeHandler< RelRexDagVisitor, T >, N > Handlers
static Handlers< T, sizeof...(Ts)> make_handlers()
virtual void visit(RexLiteral const *)
virtual void visit(RelAggregate const *)
void castAndVisit(RelAlgNode const *)
virtual ~RelRexDagVisitor()=default
virtual void visit(RelLogicalUnion const *)
virtual void visit(RelSort const *)
Sortable utility struct for visitor patterns.
virtual void visit(RelModify const *)