OmniSciDB  8a228a1076
anonymous_namespace{RelAlgOptimizer.cpp}::AvailabilityChecker Class Reference

Public Member Functions

 AvailabilityChecker (const std::unordered_map< const RelAlgNode *, std::unordered_map< size_t, size_t >> &liveouts, const std::unordered_set< const RelAlgNode *> &intact_nodes)
 
bool hasAllSrcReady (const RelAlgNode *node) const
 

Private Attributes

const std::unordered_map< const RelAlgNode *, std::unordered_map< size_t, size_t > > & liveouts_
 
const std::unordered_set< const RelAlgNode * > & intact_nodes_
 

Detailed Description

Definition at line 764 of file RelAlgOptimizer.cpp.

Constructor & Destructor Documentation

◆ AvailabilityChecker()

anonymous_namespace{RelAlgOptimizer.cpp}::AvailabilityChecker::AvailabilityChecker ( const std::unordered_map< const RelAlgNode *, std::unordered_map< size_t, size_t >> &  liveouts,
const std::unordered_set< const RelAlgNode *> &  intact_nodes 
)
inline

Definition at line 766 of file RelAlgOptimizer.cpp.

770  : liveouts_(liveouts), intact_nodes_(intact_nodes) {}
const std::unordered_map< const RelAlgNode *, std::unordered_map< size_t, size_t > > & liveouts_
const std::unordered_set< const RelAlgNode * > & intact_nodes_

Member Function Documentation

◆ hasAllSrcReady()

bool anonymous_namespace{RelAlgOptimizer.cpp}::AvailabilityChecker::hasAllSrcReady ( const RelAlgNode node) const
inline

Definition at line 772 of file RelAlgOptimizer.cpp.

References RelAlgNode::getInput(), RelAlgNode::inputCount(), and src.

Referenced by anonymous_namespace{RelAlgOptimizer.cpp}::propagate_input_renumbering(), and anonymous_namespace{RelAlgOptimizer.cpp}::sweep_dead_columns().

772  {
773  for (size_t i = 0; i < node->inputCount(); ++i) {
774  auto src = node->getInput(i);
775  if (!dynamic_cast<const RelScan*>(src) && liveouts_.find(src) == liveouts_.end() &&
776  !intact_nodes_.count(src)) {
777  return false;
778  }
779  }
780  return true;
781  }
int64_t * src
const std::unordered_map< const RelAlgNode *, std::unordered_map< size_t, size_t > > & liveouts_
const std::unordered_set< const RelAlgNode * > & intact_nodes_
const size_t inputCount() const
const RelAlgNode * getInput(const size_t idx) const
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ intact_nodes_

const std::unordered_set<const RelAlgNode*>& anonymous_namespace{RelAlgOptimizer.cpp}::AvailabilityChecker::intact_nodes_
private

Definition at line 786 of file RelAlgOptimizer.cpp.

◆ liveouts_

const std::unordered_map<const RelAlgNode*, std::unordered_map<size_t, size_t> >& anonymous_namespace{RelAlgOptimizer.cpp}::AvailabilityChecker::liveouts_
private

Definition at line 785 of file RelAlgOptimizer.cpp.


The documentation for this class was generated from the following file: