OmniSciDB
1dac507f6e
|
#include <RelAlgAbstractInterpreter.h>
Public Member Functions | |
RelAlgNode () | |
virtual | ~RelAlgNode () |
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 |
Static Public Member Functions | |
static void | resetRelAlgFirstId () noexcept |
Protected Attributes | |
std::vector< std::shared_ptr < const RelAlgNode > > | 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 608 of file RelAlgAbstractInterpreter.h.
|
inline |
Definition at line 610 of file RelAlgAbstractInterpreter.h.
|
inlinevirtual |
Definition at line 612 of file RelAlgAbstractInterpreter.h.
|
inline |
Definition at line 648 of file RelAlgAbstractInterpreter.h.
References inputs_.
Referenced by RelLeftDeepInnerJoin::RelLeftDeepInnerJoin().
|
pure virtual |
Implemented in RelLogicalValues, RelTableFunction, RelModify, RelSort, RelCompound, RelLeftDeepInnerJoin, RelFilter, RelJoin, RelAggregate, RelProject, and RelScan.
|
inline |
Definition at line 643 of file RelAlgAbstractInterpreter.h.
References CHECK(), and inputs_.
Referenced by get_left_deep_join_root().
|
inline |
Definition at line 631 of file RelAlgAbstractInterpreter.h.
References CHECK(), and context_data_.
|
inline |
Definition at line 627 of file RelAlgAbstractInterpreter.h.
References id_.
Referenced by RelAlgExecutor::executeSort(), and anonymous_namespace{RelAlgExecutor.cpp}::table_id_from_ra().
|
inline |
Definition at line 638 of file RelAlgAbstractInterpreter.h.
References CHECK(), and inputs_.
Referenced by anonymous_namespace{RelAlgOptimizer.cpp}::add_new_indices_for(), RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createModifyCompoundWorkUnit(), RelAlgExecutor::createModifyProjectWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::createSortInputWorkUnit(), RelAlgExecutor::executeDeleteViaProject(), RelAlgExecutor::executeProject(), RelAlgExecutor::executeSort(), RelAlgExecutor::executeUpdateViaProject(), 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_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{RelAlgAbstractInterpreter.cpp}::isRenamedInput(), 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(), JoinTargetRebaser::visitInput(), and anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitSort().
|
inline |
Definition at line 623 of file RelAlgAbstractInterpreter.h.
References targets_metainfo_.
Referenced by RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::executeAggregate(), RelAlgExecutor::executeCompound(), RelAlgExecutor::executeFilter(), RelAlgExecutor::executeProject(), RelAlgExecutor::executeUpdateViaCompound(), RelAlgExecutor::executeUpdateViaProject(), anonymous_namespace{RelAlgExecutor.cpp}::get_used_inputs(), and RelAlgTranslator::translateInput().
|
inline |
|
inline |
Definition at line 652 of file RelAlgAbstractInterpreter.h.
References inputs_.
|
inline |
Definition at line 636 of file RelAlgAbstractInterpreter.h.
References inputs_.
Referenced by anonymous_namespace{RelAlgOptimizer.cpp}::add_new_indices_for(), RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createFilterWorkUnit(), RelAlgExecutor::createModifyCompoundWorkUnit(), RelAlgExecutor::createTableFunctionWorkUnit(), RelAlgExecutor::executeDeleteViaProject(), RelAlgExecutor::executeProject(), RelAlgExecutor::executeSort(), RelAlgExecutor::executeUpdateViaProject(), 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(), anonymous_namespace{RelLeftDeepInnerJoin.cpp}::RebindRexInputsFromLeftDeepJoin::RebindRexInputsFromLeftDeepJoin(), anonymous_namespace{RelAlgExecutor.cpp}::synthesize_inputs(), tree_string(), RelAlgVisitor< std::unordered_set< int > >::visit(), anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitLeftDeepInnerJoin(), and anonymous_namespace{QueryPhysicalInputsCollector.cpp}::RelAlgPhysicalInputsVisitor::visitSort().
|
inline |
|
inline |
Definition at line 673 of file RelAlgAbstractInterpreter.h.
References is_nop_.
Referenced by anonymous_namespace{RelAlgAbstractInterpreter.cpp}::mark_nops().
|
inlinevirtual |
Reimplemented in RelTableFunction, RelCompound, RelFilter, RelJoin, and RelProject.
Definition at line 661 of file RelAlgAbstractInterpreter.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().
|
staticnoexcept |
Definition at line 41 of file RelAlgAbstractInterpreter.cpp.
References crt_id_, and anonymous_namespace{RelAlgAbstractInterpreter.cpp}::FIRST_RA_NODE_ID.
Referenced by deserialize_ra_dag().
|
inline |
Definition at line 614 of file RelAlgAbstractInterpreter.h.
References CHECK(), and context_data_.
|
inline |
Definition at line 619 of file RelAlgAbstractInterpreter.h.
References targets_metainfo_.
Referenced by RelAlgExecutor::createAggregateWorkUnit(), RelAlgExecutor::createCompoundWorkUnit(), RelAlgExecutor::createFilterWorkUnit(), RelAlgExecutor::createModifyCompoundWorkUnit(), RelAlgExecutor::createModifyProjectWorkUnit(), RelAlgExecutor::createProjectWorkUnit(), RelAlgExecutor::createSortInputWorkUnit(), RelAlgExecutor::createTableFunctionWorkUnit(), RelAlgExecutor::executeLogicalValues(), and RelAlgExecutor::executeSort().
|
pure virtual |
Implemented in 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{RelAlgAbstractInterpreter.cpp}::isRenamedInput(), anonymous_namespace{RelAlgOptimizer.cpp}::pick_always_live_col_idx(), and anonymous_namespace{RelLeftDeepInnerJoin.cpp}::RebindRexInputsFromLeftDeepJoin::RebindRexInputsFromLeftDeepJoin().
|
pure virtual |
Implemented in RelLogicalValues, RelTableFunction, RelModify, RelSort, RelCompound, RelLeftDeepInnerJoin, RelFilter, RelJoin, RelAggregate, RelProject, and RelScan.
Referenced by anonymous_namespace{RelAlgOptimizer.cpp}::add_new_indices_for(), and tree_string().
|
mutableprivate |
Definition at line 688 of file RelAlgAbstractInterpreter.h.
Referenced by getContextData(), hasContextData(), and setContextData().
|
staticprivate |
Definition at line 691 of file RelAlgAbstractInterpreter.h.
Referenced by resetRelAlgFirstId().
|
protected |
Definition at line 685 of file RelAlgAbstractInterpreter.h.
Referenced by getId().
|
protected |
Definition at line 684 of file RelAlgAbstractInterpreter.h.
Referenced by addManagedInput(), RelModify::applyDeleteModificationsToInputNode(), RelModify::applyUpdateModificationsToInputNode(), RelProject::deepCopy(), RelAggregate::deepCopy(), RelJoin::deepCopy(), RelFilter::deepCopy(), RelCompound::deepCopy(), RelSort::deepCopy(), RelModify::deepCopy(), RelTableFunction::deepCopy(), getAndOwnInput(), getInput(), hasInput(), inputCount(), RelAggregate::RelAggregate(), RelFilter::RelFilter(), RelJoin::RelJoin(), RelModify::RelModify(), RelProject::RelProject(), RelSort::RelSort(), RelTableFunction::RelTableFunction(), replaceInput(), RelJoin::size(), RelFilter::size(), RelLeftDeepInnerJoin::size(), RelSort::size(), and RelLeftDeepInnerJoin::toString().
|
private |
Definition at line 689 of file RelAlgAbstractInterpreter.h.
Referenced by isNop(), and markAsNop().
|
mutableprivate |
Definition at line 690 of file RelAlgAbstractInterpreter.h.
Referenced by getOutputMetainfo(), and setOutputMetainfo().