OmniSciDB
a5dc49c757
|
#include <QueryPlanDagChecker.h>
Public Member Functions | |
QueryPlanDagChecker () | |
void | check (const RelAlgNode *) |
void | detectNonSupportedNode (const std::string &node_tag) |
void | reset () |
bool | getCheckResult () const |
std::string const & | getNonSupportedNodeTag () const |
Public Member Functions inherited from RelRexDagVisitor | |
virtual | ~RelRexDagVisitor ()=default |
virtual void | visit (RelAlgNode const *) |
virtual void | visit (RexScalar const *) |
Static Public Member Functions | |
static std::unordered_set < std::string > | getNonSupportedFunctionsList () |
static std::pair< bool, std::string > | hasNonSupportedNodeInDag (const RelAlgNode *rel_alg_node) |
Private Member Functions | |
void | visit (const RelLogicalValues *) override |
void | visit (const RelModify *) override |
void | visit (const RelProject *) override |
void | visit (const RelScan *) override |
void | visit (const RelCompound *) override |
void | visit (const RelLogicalUnion *) override |
void | visit (const RexFunctionOperator *) override |
void | visit (const RexOperator *) override |
Private Attributes | |
bool | detect_non_supported_node_ |
std::string | non_supported_node_tag_ |
const std::unordered_set < std::string > | non_supported_functions_ |
Additional Inherited Members | |
Protected Member Functions inherited from RelRexDagVisitor | |
virtual void | visit (RelAggregate const *) |
virtual void | visit (RelFilter const *) |
virtual void | visit (RelJoin const *) |
virtual void | visit (RelLeftDeepInnerJoin 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 (RexInput const *) |
virtual void | visit (RexLiteral const *) |
virtual void | visit (RexRef const *) |
virtual void | visit (RexSubQuery const *) |
virtual void | visit (RexWindowFunctionOperator const *) |
void | castAndVisit (RelAlgNode const *) |
Definition at line 25 of file QueryPlanDagChecker.h.
|
inline |
Definition at line 27 of file QueryPlanDagChecker.h.
void QueryPlanDagChecker::check | ( | const RelAlgNode * | rel_alg_node | ) |
Definition at line 35 of file QueryPlanDagChecker.cpp.
References RelRexDagVisitor::visit().
Referenced by hasNonSupportedNodeInDag().
void QueryPlanDagChecker::detectNonSupportedNode | ( | const std::string & | node_tag | ) |
Definition at line 23 of file QueryPlanDagChecker.cpp.
References detect_non_supported_node_, and non_supported_node_tag_.
Referenced by visit().
bool QueryPlanDagChecker::getCheckResult | ( | ) | const |
Definition at line 19 of file QueryPlanDagChecker.cpp.
References detect_non_supported_node_.
Referenced by hasNonSupportedNodeInDag(), and visit().
|
inlinestatic |
Definition at line 31 of file QueryPlanDagChecker.h.
const std::string & QueryPlanDagChecker::getNonSupportedNodeTag | ( | ) | const |
Definition at line 134 of file QueryPlanDagChecker.cpp.
References non_supported_node_tag_.
Referenced by hasNonSupportedNodeInDag().
|
static |
Definition at line 28 of file QueryPlanDagChecker.cpp.
References check(), getCheckResult(), and getNonSupportedNodeTag().
Referenced by QueryPlanDagExtractor::extractQueryPlanDag().
void QueryPlanDagChecker::reset | ( | ) |
Definition at line 129 of file QueryPlanDagChecker.cpp.
References detect_non_supported_node_, and non_supported_node_tag_.
|
overrideprivatevirtual |
Reimplemented from RelRexDagVisitor.
Definition at line 39 of file QueryPlanDagChecker.cpp.
References detectNonSupportedNode().
|
overrideprivatevirtual |
Reimplemented from RelRexDagVisitor.
Definition at line 44 of file QueryPlanDagChecker.cpp.
References detectNonSupportedNode().
|
overrideprivatevirtual |
Reimplemented from RelRexDagVisitor.
Definition at line 49 of file QueryPlanDagChecker.cpp.
References detectNonSupportedNode(), ModifyManipulationTarget::isDeleteViaSelect(), ModifyManipulationTarget::isUpdateViaSelect(), ModifyManipulationTarget::isVarlenUpdateRequired(), and RelRexDagVisitor::visit().
|
overrideprivatevirtual |
Reimplemented from RelRexDagVisitor.
Definition at line 87 of file QueryPlanDagChecker.cpp.
References detectNonSupportedNode(), RelScan::getTableDescriptor(), TableDescriptor::is_system_table, TableDescriptor::isForeignTable(), TableDescriptor::isTemporaryTable(), and RelRexDagVisitor::visit().
|
overrideprivatevirtual |
Reimplemented from RelRexDagVisitor.
Definition at line 58 of file QueryPlanDagChecker.cpp.
References detectNonSupportedNode(), RelCompound::getTargetExpr(), RelCompound::isAggregate(), ModifyManipulationTarget::isDeleteViaSelect(), ModifyManipulationTarget::isUpdateViaSelect(), ModifyManipulationTarget::isVarlenUpdateRequired(), kAPPROX_QUANTILE, kSAMPLE, kSINGLE_VALUE, RelCompound::size(), and RelRexDagVisitor::visit().
|
overrideprivatevirtual |
Reimplemented from RelRexDagVisitor.
Definition at line 82 of file QueryPlanDagChecker.cpp.
References detectNonSupportedNode().
|
overrideprivatevirtual |
Reimplemented from RelRexDagVisitor.
Definition at line 115 of file QueryPlanDagChecker.cpp.
References detectNonSupportedNode(), getCheckResult(), RexFunctionOperator::getName(), RexOperator::getOperand(), non_supported_functions_, RexOperator::size(), and RelRexDagVisitor::visit().
|
overrideprivatevirtual |
Reimplemented from RelRexDagVisitor.
Definition at line 102 of file QueryPlanDagChecker.cpp.
References detectNonSupportedNode(), RexOperator::getOperand(), RexOperator::getOperator(), kOR, RexOperator::size(), and RelRexDagVisitor::visit().
|
private |
Definition at line 66 of file QueryPlanDagChecker.h.
Referenced by detectNonSupportedNode(), getCheckResult(), and reset().
|
private |
Definition at line 68 of file QueryPlanDagChecker.h.
Referenced by visit().
|
private |
Definition at line 67 of file QueryPlanDagChecker.h.
Referenced by detectNonSupportedNode(), getNonSupportedNodeTag(), and reset().