OmniSciDB
94e8789169
|
#include <RelAlgDagBuilder.h>
Public Member Functions | |
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 () |
virtual std::string | toString () const =0 |
virtual size_t | size () const =0 |
virtual std::shared_ptr < RelAlgNode > | deepCopy () const =0 |
void | clearContextData () const |
Static Public Member Functions | |
static void | resetRelAlgFirstId () noexcept |
Protected Attributes | |
RelAlgInputs | inputs_ |
const unsigned | id_ |
Private Attributes | |
const void * | context_data_ |
bool | is_nop_ |
std::vector< TargetMetaInfo > | targets_metainfo_ |
Static Private Attributes | |
static thread_local unsigned | crt_id_ = FIRST_RA_NODE_ID |
Definition at line 695 of file RelAlgDagBuilder.h.
|
inline |
Definition at line 697 of file RelAlgDagBuilder.h.
|
inlinevirtual |
Definition at line 703 of file RelAlgDagBuilder.h.
|
inline |
Definition at line 744 of file RelAlgDagBuilder.h.
References inputs_.
Referenced by RelLeftDeepInnerJoin::RelLeftDeepInnerJoin().
|
inline |
Clears the ptr to the result for this descriptor. Is only used for overriding step results in distributed mode.
Definition at line 783 of file RelAlgDagBuilder.h.
References context_data_.
|
pure virtual |
Implemented in RelLogicalUnion, RelLogicalValues, RelTableFunction, RelModify, RelSort, RelCompound, RelLeftDeepInnerJoin, RelFilter, RelJoin, RelAggregate, RelProject, and RelScan.
|
inline |
Definition at line 739 of file RelAlgDagBuilder.h.
References CHECK_LT, and inputs_.
Referenced by get_left_deep_join_root().
|
inline |
|
inline |
Definition at line 723 of file RelAlgDagBuilder.h.
References id_.
Referenced by RelAlgExecutor::executeRelAlgStep(), RelAlgExecutor::executeSort(), anonymous_namespace{RelAlgExecutor.cpp}::table_id_from_ra(), and anonymous_namespace{RelAlgExecutor.cpp}::target_exprs_for_union().
|
inline |
Definition at line 734 of file RelAlgDagBuilder.h.
References CHECK_LT, and inputs_.
Referenced by anonymous_namespace{RelAlgOptimizer.cpp}::add_new_indices_for(), anonymous_namespace{RelAlgExecutor.cpp}::check_sort_node_source_constraint(), RelLogicalUnion::copyAndRedirectSource(), RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::createSortInputWorkUnit(), RelAlgExecutor::createUnionWorkUnit(), RelAlgExecutor::executeProject(), RelAlgExecutor::executeSort(), RelAlgExecutor::executeUnion(), anonymous_namespace{RelAlgOptimizer.cpp}::get_actual_source_size(), anonymous_namespace{RelAlgExecutor.cpp}::get_data_sink(), anonymous_namespace{RelAlgOptimizer.cpp}::get_field_name(), anonymous_namespace{RelAlgExecutor.cpp}::get_left_deep_join_input_sizes(), anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta(), anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs(), anonymous_namespace{RelAlgOptimizer.cpp}::get_visible_projects(), anonymous_namespace{RelAlgOptimizer.cpp}::AvailabilityChecker::hasAllSrcReady(), hoist_filter_cond_to_cross_join(), anonymous_namespace{RelAlgOptimizer.cpp}::is_distinct(), RelProject::isIdentity(), anonymous_namespace{RelAlgDagBuilder.cpp}::isRenamedInput(), project_separates_sort(), anonymous_namespace{RelAlgOptimizer.cpp}::propagate_rex_input_renumber(), anonymous_namespace{RelLeftDeepInnerJoin.cpp}::RebindRexInputsFromLeftDeepJoin::RebindRexInputsFromLeftDeepJoin(), anonymous_namespace{RelAlgExecutor.cpp}::synthesize_inputs(), tree_string(), RelAlgVisitor< std::unordered_set< int > >::visit(), RelRexDagVisitor::visit(), JoinTargetRebaser::visitInput(), and anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitSort().
|
inline |
Definition at line 719 of file RelAlgDagBuilder.h.
References targets_metainfo_.
Referenced by RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createUnionWorkUnit(), RelAlgExecutor::executeAggregate(), RelAlgExecutor::executeCompound(), RelAlgExecutor::executeFilter(), RelAlgExecutor::executeProject(), RelAlgExecutor::executeUnion(), anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs(), anonymous_namespace{RelAlgExecutor.cpp}::target_exprs_for_union(), and RelAlgTranslator::translateInput().
|
inline |
|
inline |
Definition at line 748 of file RelAlgDagBuilder.h.
References inputs_.
Referenced by RelAlgExecutor::executeUnion().
|
inline |
Definition at line 732 of file RelAlgDagBuilder.h.
References inputs_.
Referenced by anonymous_namespace{RelAlgOptimizer.cpp}::add_new_indices_for(), anonymous_namespace{RelAlgExecutor.cpp}::check_sort_node_source_constraint(), RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createFilterWorkUnit(), RelAlgExecutor::executeProject(), anonymous_namespace{RelAlgExecutor.cpp}::get_data_sink(), anonymous_namespace{RelAlgExecutor.cpp}::get_join_source_used_inputs(), anonymous_namespace{RelAlgExecutor.cpp}::get_left_deep_join_input_sizes(), anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs(), anonymous_namespace{RelAlgOptimizer.cpp}::AvailabilityChecker::hasAllSrcReady(), anonymous_namespace{RelAlgOptimizer.cpp}::is_distinct(), RelProject::isIdentity(), anonymous_namespace{RelAlgExecutor.cpp}::left_deep_join_types(), project_separates_sort(), anonymous_namespace{RelLeftDeepInnerJoin.cpp}::RebindRexInputsFromLeftDeepJoin::RebindRexInputsFromLeftDeepJoin(), anonymous_namespace{RelAlgExecutor.cpp}::synthesize_inputs(), tree_string(), RelAlgVisitor< std::unordered_set< int > >::visit(), RelRexDagVisitor::visit(), anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitLeftDeepInnerJoin(), and anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitSort().
|
inline |
|
inline |
Definition at line 769 of file RelAlgDagBuilder.h.
References is_nop_.
Referenced by anonymous_namespace{RelAlgDagBuilder.cpp}::mark_nops().
|
inlinevirtual |
Reimplemented in RelTableFunction, RelCompound, RelFilter, RelJoin, and RelProject.
Definition at line 757 of file RelAlgDagBuilder.h.
References inputs_.
Referenced by RelProject::replaceInput(), RelJoin::replaceInput(), RelFilter::replaceInput(), RelCompound::replaceInput(), RelTableFunction::replaceInput(), simplify_sort(), and anonymous_namespace{RelAlgOptimizer.cpp}::try_insert_coalesceable_proj().
|
inline |
Definition at line 705 of file RelAlgDagBuilder.h.
References context_data_, and targets_metainfo_.
|
staticnoexcept |
Definition at line 47 of file RelAlgDagBuilder.cpp.
References crt_id_, and anonymous_namespace{RelAlgDagBuilder.cpp}::FIRST_RA_NODE_ID.
Referenced by RelAlgDagBuilder::RelAlgDagBuilder().
|
inline |
|
inline |
Definition at line 715 of file RelAlgDagBuilder.h.
References targets_metainfo_.
Referenced by RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createFilterWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::createSortInputWorkUnit(), RelAlgExecutor::createTableFunctionWorkUnit(), RelAlgExecutor::createUnionWorkUnit(), RelAlgExecutor::executeLogicalValues(), RelAlgExecutor::executeSort(), and RelAlgExecutor::executeUnion().
|
pure virtual |
Implemented in RelLogicalUnion, RelLogicalValues, RelTableFunction, RelModify, RelSort, RelCompound, RelLeftDeepInnerJoin, RelFilter, RelJoin, RelAggregate, RelProject, and RelScan.
Referenced by anonymous_namespace{RelAlgOptimizer.cpp}::add_new_indices_for(), anonymous_namespace{RelAlgOptimizer.cpp}::any_dead_col_in(), anonymous_namespace{RelAlgOptimizer.cpp}::get_actual_source_size(), anonymous_namespace{RelAlgOptimizer.cpp}::get_field_name(), anonymous_namespace{RelAlgDagBuilder.cpp}::isRenamedInput(), anonymous_namespace{RelAlgOptimizer.cpp}::pick_always_live_col_idx(), and anonymous_namespace{RelLeftDeepInnerJoin.cpp}::RebindRexInputsFromLeftDeepJoin::RebindRexInputsFromLeftDeepJoin().
|
pure virtual |
Implemented in RelLogicalUnion, RelLogicalValues, RelTableFunction, RelModify, RelSort, RelCompound, RelLeftDeepInnerJoin, RelFilter, RelJoin, RelAggregate, RelProject, and RelScan.
Referenced by anonymous_namespace{RelAlgOptimizer.cpp}::add_new_indices_for(), anonymous_namespace{RelAlgExecutor.cpp}::collect_used_input_desc(), RelAlgExecutor::createUnionWorkUnit(), RelAlgExecutor::createWorkUnit(), anonymous_namespace{RelAlgExecutor.cpp}::get_join_source_used_inputs(), get_node_output(), anonymous_namespace{RelAlgExecutor.cpp}::get_targets_meta(), anonymous_namespace{RelAlgOptimizer.cpp}::get_visible_projects(), tree_string(), RelAlgVisitor< std::unordered_set< int > >::visit(), and RelRexDagVisitor::visit().
|
mutableprivate |
Definition at line 790 of file RelAlgDagBuilder.h.
Referenced by clearContextData(), getContextData(), hasContextData(), resetQueryExecutionState(), and setContextData().
|
staticprivate |
Definition at line 793 of file RelAlgDagBuilder.h.
Referenced by resetRelAlgFirstId().
|
protected |
Definition at line 787 of file RelAlgDagBuilder.h.
Referenced by getId().
|
protected |
Definition at line 786 of file RelAlgDagBuilder.h.
Referenced by addManagedInput(), RelModify::applyDeleteModificationsToInputNode(), RelModify::applyUpdateModificationsToInputNode(), RelLogicalUnion::checkForMatchingMetaInfoTypes(), getAndOwnInput(), RelLogicalUnion::getFieldName(), getInput(), hasInput(), inputCount(), RelAggregate::RelAggregate(), RelFilter::RelFilter(), RelJoin::RelJoin(), RelLogicalUnion::RelLogicalUnion(), RelModify::RelModify(), RelProject::RelProject(), RelSort::RelSort(), RelTableFunction::RelTableFunction(), replaceInput(), RelJoin::size(), RelFilter::size(), RelLeftDeepInnerJoin::size(), RelSort::size(), RelLogicalUnion::size(), RelAggregate::toString(), RelJoin::toString(), RelFilter::toString(), RelLeftDeepInnerJoin::toString(), RelSort::toString(), RelModify::toString(), and RelTableFunction::toString().
|
private |
Definition at line 791 of file RelAlgDagBuilder.h.
Referenced by isNop(), and markAsNop().
|
mutableprivate |
Definition at line 792 of file RelAlgDagBuilder.h.
Referenced by getOutputMetainfo(), resetQueryExecutionState(), and setOutputMetainfo().