OmniSciDB  340b00dbf6
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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

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

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

Definition at line 772 of file RelAlgOptimizer.cpp.

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

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  }
const std::unordered_map< const RelAlgNode *, std::unordered_map< size_t, size_t > > & liveouts_
const RelAlgNode * getInput(const size_t idx) const
const std::unordered_set< const RelAlgNode * > & intact_nodes_
const size_t inputCount() const

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

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

Definition at line 786 of file RelAlgOptimizer.cpp.

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: