OmniSciDB
a5dc49c757
|
#include <RelAlgDag.h>
Public Member Functions | |
RelLeftDeepInnerJoin ()=default | |
RelLeftDeepInnerJoin (const std::shared_ptr< RelFilter > &filter, RelAlgInputs inputs, std::vector< std::shared_ptr< const RelJoin >> &original_joins) | |
virtual void | acceptChildren (Visitor &v) const override |
virtual void | accept (Visitor &v, std::string name) const override |
const RexScalar * | getInnerCondition () const |
const RexScalar * | getOuterCondition (const size_t nesting_level) const |
const JoinType | getJoinType (const size_t nesting_level) const |
std::string | toString (RelRexToStringConfig config=RelRexToStringConfig::defaults()) const override |
size_t | size () const override |
virtual size_t | getOuterConditionsSize () const |
std::shared_ptr< RelAlgNode > | deepCopy () const override |
bool | coversOriginalNode (const RelAlgNode *node) const |
const RelFilter * | getOriginalFilter () const |
std::vector< std::shared_ptr < const RelJoin > > | getOriginalJoins () const |
virtual size_t | toHash () const override |
Public Member Functions inherited from RelAlgNode | |
RelAlgNode (RelAlgInputs inputs={}) | |
virtual | ~RelAlgNode () |
void | resetQueryExecutionState () |
void | setContextData (const RaExecutionDesc *context_data) const |
void | setOutputMetainfo (std::vector< TargetMetaInfo > targets_metainfo) const |
void | setQueryPlanDag (const std::string &extracted_query_plan_dag) const |
std::string | getQueryPlanDag () const |
size_t | getQueryPlanDagHash () const |
const std::vector < TargetMetaInfo > & | getOutputMetainfo () const |
unsigned | getId () const |
bool | hasContextData () const |
const RaExecutionDesc * | getContextData () const |
const size_t | inputCount () const |
const RelAlgNode * | getInput (const size_t idx) const |
const std::vector< RelAlgNode const * > | getInputs () const |
std::shared_ptr< const RelAlgNode > | getAndOwnInput (const size_t idx) const |
void | addManagedInput (std::shared_ptr< const RelAlgNode > input) |
bool | hasInput (const RelAlgNode *needle) const |
virtual void | replaceInput (std::shared_ptr< const RelAlgNode > old_input, std::shared_ptr< const RelAlgNode > input) |
void | setRelNodeDagId (const size_t id) const |
size_t | getRelNodeDagId () const |
bool | isNop () const |
void | markAsNop () |
void | clearContextData () const |
Public Member Functions inherited from RelAlgDagNode | |
RelAlgDagNode () | |
virtual size_t | getStepNumber () const |
virtual void | setStepNumber (size_t step) const |
std::optional< size_t > | getIdInPlanTree () const |
void | setIdInPlanTree (size_t id) const |
Private Attributes | |
std::unique_ptr< const RexScalar > | condition_ |
std::vector< std::unique_ptr < const RexScalar > > | outer_conditions_per_level_ |
std::shared_ptr< RelFilter > | original_filter_ |
std::vector< std::shared_ptr < const RelJoin > > | original_joins_ |
Friends | |
struct | RelAlgDagSerializer |
std::size_t | hash_value (RelLeftDeepInnerJoin const &) |
Additional Inherited Members | |
Static Public Member Functions inherited from RelAlgNode | |
static void | resetRelAlgFirstId () noexcept |
Protected Attributes inherited from RelAlgNode | |
RelAlgInputs | inputs_ |
unsigned | id_ |
std::optional< size_t > | hash_ |
Protected Attributes inherited from RelAlgDagNode | |
size_t | step_ {0} |
std::optional< size_t > | id_in_plan_tree_ |
Definition at line 1951 of file RelAlgDag.h.
|
default |
RelLeftDeepInnerJoin::RelLeftDeepInnerJoin | ( | const std::shared_ptr< RelFilter > & | filter, |
RelAlgInputs | inputs, | ||
std::vector< std::shared_ptr< const RelJoin >> & | original_joins | ||
) |
|
inlineoverridevirtual |
Implements RelAlgDagNode.
Definition at line 1975 of file RelAlgDag.h.
References acceptChildren(), and RelAlgDagNode::Visitor::visit().
Referenced by TableFunctionsFactory_node.PrintNode::__str__().
|
inlineoverridevirtual |
Implements RelAlgDagNode.
Definition at line 1960 of file RelAlgDag.h.
References RelAlgDagNode::accept(), getInnerCondition(), RelAlgNode::getInputs(), getOuterCondition(), getOuterConditionsSize(), and anonymous_namespace{Utm.h}::n.
Referenced by accept().
bool RelLeftDeepInnerJoin::coversOriginalNode | ( | const RelAlgNode * | node | ) | const |
Definition at line 149 of file RelLeftDeepInnerJoin.cpp.
References original_filter_, and original_joins_.
|
overridevirtual |
const RexScalar * RelLeftDeepInnerJoin::getInnerCondition | ( | ) | const |
Definition at line 91 of file RelLeftDeepInnerJoin.cpp.
References condition_.
Referenced by acceptChildren(), RelAlgExecutor::translateLeftDeepJoinFilter(), RelRexDagVisitor::visit(), and anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitLeftDeepInnerJoin().
const JoinType RelLeftDeepInnerJoin::getJoinType | ( | const size_t | nesting_level | ) | const |
Definition at line 105 of file RelLeftDeepInnerJoin.cpp.
References CHECK_LE, and original_joins_.
Referenced by anonymous_namespace{RelAlgExecutor.cpp}::left_deep_join_types().
const RelFilter * RelLeftDeepInnerJoin::getOriginalFilter | ( | ) | const |
Definition at line 161 of file RelLeftDeepInnerJoin.cpp.
References original_filter_.
std::vector< std::shared_ptr< const RelJoin > > RelLeftDeepInnerJoin::getOriginalJoins | ( | ) | const |
Definition at line 165 of file RelLeftDeepInnerJoin.cpp.
References original_joins_.
const RexScalar * RelLeftDeepInnerJoin::getOuterCondition | ( | const size_t | nesting_level | ) | const |
Definition at line 95 of file RelLeftDeepInnerJoin.cpp.
References CHECK_GE, CHECK_LE, and outer_conditions_per_level_.
Referenced by acceptChildren(), QueryPlanDagExtractor::handleLeftDeepJoinTree(), anonymous_namespace{RelAlgExecutor.cpp}::left_deep_join_types(), RelAlgExecutor::translateLeftDeepJoinFilter(), RelRexDagVisitor::visit(), and anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitLeftDeepInnerJoin().
|
virtual |
Definition at line 140 of file RelLeftDeepInnerJoin.cpp.
References outer_conditions_per_level_.
Referenced by acceptChildren().
|
overridevirtual |
Implements RelAlgNode.
Definition at line 132 of file RelLeftDeepInnerJoin.cpp.
References RelAlgNode::inputs_.
|
inlineoverridevirtual |
Implements RelAlgNode.
Definition at line 2001 of file RelAlgDag.h.
References hash_value.
|
overridevirtual |
Implements RelAlgNode.
Definition at line 110 of file RelLeftDeepInnerJoin.cpp.
References RelRexToStringConfig::attributes_only, condition_, RelAlgNode::inputs_, RelRexToStringConfig::skip_input_nodes, to_string(), and typeName().
|
friend |
Definition at line 3763 of file RelAlgDag.cpp.
Referenced by toHash().
|
friend |
Definition at line 2011 of file RelAlgDag.h.
|
private |
Definition at line 2006 of file RelAlgDag.h.
Referenced by getInnerCondition(), hash_value(), and toString().
|
private |
Definition at line 2008 of file RelAlgDag.h.
Referenced by coversOriginalNode(), getOriginalFilter(), and hash_value().
|
private |
Definition at line 2009 of file RelAlgDag.h.
Referenced by coversOriginalNode(), getJoinType(), and getOriginalJoins().
|
private |
Definition at line 2007 of file RelAlgDag.h.
Referenced by getOuterCondition(), getOuterConditionsSize(), and hash_value().