OmniSciDB  c07336695a
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 701 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 703 of file RelAlgOptimizer.cpp.

707  : 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 709 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().

709  {
710  for (size_t i = 0; i < node->inputCount(); ++i) {
711  auto src = node->getInput(i);
712  if (!dynamic_cast<const RelScan*>(src) && liveouts_.find(src) == liveouts_.end() &&
713  !intact_nodes_.count(src)) {
714  return false;
715  }
716  }
717  return true;
718  }
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 723 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 722 of file RelAlgOptimizer.cpp.


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