OmniSciDB
a5dc49c757
|
#include <RelRexDagVisitor.h>
Public Member Functions | |
virtual | ~RelRexDagVisitor ()=default |
virtual void | visit (RelAlgNode const *) |
virtual void | visit (RexScalar const *) |
Protected Member Functions | |
virtual void | visit (RelAggregate const *) |
virtual void | visit (RelCompound const *) |
virtual void | visit (RelFilter const *) |
virtual void | visit (RelJoin const *) |
virtual void | visit (RelLeftDeepInnerJoin const *) |
virtual void | visit (RelLogicalUnion const *) |
virtual void | visit (RelLogicalValues const *) |
virtual void | visit (RelModify const *) |
virtual void | visit (RelProject const *) |
virtual void | visit (RelScan const *) |
virtual void | visit (RelSort const *) |
virtual void | visit (RelTableFunction const *) |
virtual void | visit (RelTranslatedJoin const *) |
virtual void | visit (RexAbstractInput const *) |
virtual void | visit (RexCase const *) |
virtual void | visit (RexFunctionOperator const *) |
virtual void | visit (RexInput const *) |
virtual void | visit (RexLiteral const *) |
virtual void | visit (RexOperator const *) |
virtual void | visit (RexRef const *) |
virtual void | visit (RexSubQuery const *) |
virtual void | visit (RexWindowFunctionOperator const *) |
void | castAndVisit (RelAlgNode const *) |
Private Types | |
using | Cache = robin_hood::unordered_set< void const * > |
template<typename T , size_t N> | |
using | Handlers = std::array< TypeHandler< RelRexDagVisitor, T >, N > |
Private Member Functions | |
template<typename T , typename U > | |
void | cast (T const *node) |
Static Private Member Functions | |
template<typename T , typename... Ts> | |
static Handlers< T, sizeof...(Ts)> | make_handlers () |
Private Attributes | |
Cache | cache_ |
Definition at line 37 of file RelRexDagVisitor.h.
|
private |
Definition at line 71 of file RelRexDagVisitor.h.
|
private |
Definition at line 80 of file RelRexDagVisitor.h.
|
virtualdefault |
|
inlineprivate |
Definition at line 75 of file RelRexDagVisitor.h.
References visit().
|
protected |
Definition at line 40 of file RelRexDagVisitor.cpp.
References RelRexToStringConfig::defaults(), logger::FATAL, LOG, gpu_enabled::lower_bound(), make_handlers(), and RelAlgNode::toString().
Referenced by visit().
|
staticprivate |
Definition at line 32 of file RelRexDagVisitor.cpp.
References gpu_enabled::sort(), and heavydb.dtypes::T.
Referenced by castAndVisit(), and visit().
|
virtual |
Definition at line 68 of file RelRexDagVisitor.cpp.
References cache_, castAndVisit(), RelAlgNode::getInput(), and RelAlgNode::inputCount().
Referenced by cast(), QueryPlanDagChecker::check(), SQLOperatorDetector::visit(), RexSubQueryIdCollector::visit(), visit(), QueryPlanDagChecker::visit(), and ScanNodeTableKeyCollector::visit().
|
virtual |
Definition at line 132 of file RelRexDagVisitor.cpp.
References cache_, RelRexToStringConfig::defaults(), logger::FATAL, LOG, gpu_enabled::lower_bound(), make_handlers(), and RelAlgDagNode::toString().
|
inlineprotectedvirtual |
Definition at line 44 of file RelRexDagVisitor.h.
|
protectedvirtual |
Reimplemented in QueryPlanDagChecker.
Definition at line 77 of file RelRexDagVisitor.cpp.
References RelCompound::getFilterExpr(), RelCompound::getScalarSource(), RelCompound::getScalarSourcesSize(), and visit().
|
protectedvirtual |
Definition at line 86 of file RelRexDagVisitor.cpp.
References RelFilter::getCondition(), and visit().
|
protectedvirtual |
Definition at line 90 of file RelRexDagVisitor.cpp.
References RelJoin::getCondition(), and visit().
|
protectedvirtual |
Definition at line 94 of file RelRexDagVisitor.cpp.
References RelLeftDeepInnerJoin::getInnerCondition(), RelLeftDeepInnerJoin::getOuterCondition(), RelAlgNode::inputCount(), and visit().
|
inlineprotectedvirtual |
|
protectedvirtual |
Reimplemented in anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalTableInputsVisitor, and QueryPlanDagChecker.
Definition at line 103 of file RelRexDagVisitor.cpp.
References RelLogicalValues::getNumRows(), RelLogicalValues::getRowsSize(), RelLogicalValues::getValueAt(), and visit().
|
inlineprotectedvirtual |
|
protectedvirtual |
Reimplemented in QueryPlanDagChecker.
Definition at line 111 of file RelRexDagVisitor.cpp.
References RelProject::getProjectAt(), RelProject::size(), and visit().
|
inlineprotectedvirtual |
Reimplemented in anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalTableInputsVisitor, ScanNodeTableKeyCollector, and QueryPlanDagChecker.
Definition at line 53 of file RelRexDagVisitor.h.
|
inlineprotectedvirtual |
Definition at line 54 of file RelRexDagVisitor.h.
|
protectedvirtual |
Definition at line 117 of file RelRexDagVisitor.cpp.
References RelTableFunction::getTableFuncInputAt(), RelTableFunction::getTableFuncInputsSize(), and visit().
|
protectedvirtual |
Definition at line 123 of file RelRexDagVisitor.cpp.
References RelTranslatedJoin::getLHS(), RelTranslatedJoin::getOuterJoinCond(), RelTranslatedJoin::getRHS(), and visit().
|
inlineprotectedvirtual |
Definition at line 58 of file RelRexDagVisitor.h.
|
protectedvirtual |
Definition at line 168 of file RelRexDagVisitor.cpp.
References RexCase::branchCount(), RexCase::getElse(), RexCase::getThen(), RexCase::getWhen(), and visit().
|
protectedvirtual |
Reimplemented in QueryPlanDagChecker.
Definition at line 178 of file RelRexDagVisitor.cpp.
References RexOperator::getOperand(), RexOperator::size(), and visit().
|
protectedvirtual |
Definition at line 194 of file RelRexDagVisitor.cpp.
References RexInput::getSourceNode(), and visit().
|
inlineprotectedvirtual |
Definition at line 62 of file RelRexDagVisitor.h.
|
protectedvirtual |
Reimplemented in QueryPlanDagChecker, and SQLOperatorDetector.
Definition at line 184 of file RelRexDagVisitor.cpp.
References RexOperator::getOperand(), RexOperator::size(), and visit().
|
inlineprotectedvirtual |
Definition at line 64 of file RelRexDagVisitor.h.
|
protectedvirtual |
Reimplemented in RexSubQueryIdCollector.
Definition at line 190 of file RelRexDagVisitor.cpp.
References visit().
|
protectedvirtual |
Definition at line 158 of file RelRexDagVisitor.cpp.
References RexWindowFunctionOperator::getOrderKeys(), RexWindowFunctionOperator::getPartitionKeys(), and visit().
|
private |
Definition at line 72 of file RelRexDagVisitor.h.
Referenced by visit().