OmniSciDB
94e8789169
|
#include <RelAlgDagBuilder.h>
Public Member Functions | |
RelLeftDeepInnerJoin (const std::shared_ptr< RelFilter > &filter, RelAlgInputs inputs, std::vector< std::shared_ptr< const RelJoin >> &original_joins) | |
const RexScalar * | getInnerCondition () const |
const RexScalar * | getOuterCondition (const size_t nesting_level) const |
std::string | toString () const override |
size_t | size () const override |
std::shared_ptr< RelAlgNode > | deepCopy () const override |
bool | coversOriginalNode (const RelAlgNode *node) const |
![]() | |
RelAlgNode (RelAlgInputs inputs={}) | |
virtual | ~RelAlgNode () |
void | resetQueryExecutionState () |
void | setContextData (const void *context_data) const |
void | setOutputMetainfo (const std::vector< TargetMetaInfo > &targets_metainfo) const |
const std::vector < TargetMetaInfo > & | getOutputMetainfo () const |
unsigned | getId () const |
bool | hasContextData () const |
const void * | getContextData () const |
const size_t | inputCount () const |
const RelAlgNode * | getInput (const size_t idx) 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) |
bool | isNop () const |
void | markAsNop () |
void | clearContextData () const |
Private Attributes | |
std::unique_ptr< const RexScalar > | condition_ |
std::vector< std::unique_ptr < const RexScalar > > | outer_conditions_per_level_ |
const std::shared_ptr< RelFilter > | original_filter_ |
const std::vector < std::shared_ptr< const RelJoin > > | original_joins_ |
Additional Inherited Members | |
![]() | |
static void | resetRelAlgFirstId () noexcept |
![]() | |
RelAlgInputs | inputs_ |
const unsigned | id_ |
Definition at line 1256 of file RelAlgDagBuilder.h.
RelLeftDeepInnerJoin::RelLeftDeepInnerJoin | ( | const std::shared_ptr< RelFilter > & | filter, |
RelAlgInputs | inputs, | ||
std::vector< std::shared_ptr< const RelJoin >> & | original_joins | ||
) |
Definition at line 24 of file RelLeftDeepInnerJoin.cpp.
References RelAlgNode::addManagedInput(), CHECK, condition_, INNER, kAND, kBOOLEAN, LEFT, and outer_conditions_per_level_.
bool RelLeftDeepInnerJoin::coversOriginalNode | ( | const RelAlgNode * | node | ) | const |
Definition at line 127 of file RelLeftDeepInnerJoin.cpp.
References original_filter_, and original_joins_.
|
overridevirtual |
const RexScalar * RelLeftDeepInnerJoin::getInnerCondition | ( | ) | const |
Definition at line 89 of file RelLeftDeepInnerJoin.cpp.
References condition_.
Referenced by RelAlgExecutor::translateLeftDeepJoinFilter(), RelRexDagVisitor::visit(), and anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitLeftDeepInnerJoin().
const RexScalar * RelLeftDeepInnerJoin::getOuterCondition | ( | const size_t | nesting_level | ) | const |
Definition at line 93 of file RelLeftDeepInnerJoin.cpp.
References CHECK_GE, CHECK_LE, and outer_conditions_per_level_.
Referenced by anonymous_namespace{RelAlgExecutor.cpp}::left_deep_join_types(), RelAlgExecutor::translateLeftDeepJoinFilter(), RelRexDagVisitor::visit(), and anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitLeftDeepInnerJoin().
|
overridevirtual |
Implements RelAlgNode.
Definition at line 114 of file RelLeftDeepInnerJoin.cpp.
References RelAlgNode::inputs_.
|
overridevirtual |
Implements RelAlgNode.
Definition at line 103 of file RelLeftDeepInnerJoin.cpp.
References condition_, RelAlgNode::inputs_, run_benchmark_import::result, and to_string().
|
private |
Definition at line 1275 of file RelAlgDagBuilder.h.
Referenced by getInnerCondition(), RelLeftDeepInnerJoin(), and toString().
|
private |
Definition at line 1277 of file RelAlgDagBuilder.h.
Referenced by coversOriginalNode().
|
private |
Definition at line 1278 of file RelAlgDagBuilder.h.
Referenced by coversOriginalNode().
|
private |
Definition at line 1276 of file RelAlgDagBuilder.h.
Referenced by getOuterCondition(), and RelLeftDeepInnerJoin().