33 #include "ThirdParty/robin_hood/robin_hood.h"
62 virtual void visit(RexLiteral
const*) {}
65 virtual void visit(RexSubQuery
const*);
71 using Cache = robin_hood::unordered_set<void const*>;
74 template <
typename T,
typename U>
76 visit(dynamic_cast<U const*>(node));
79 template <
typename T,
size_t N>
80 using Handlers = std::array<TypeHandler<RelRexDagVisitor, T>,
N>;
82 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
robin_hood::unordered_set< void const * > Cache
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 *)