OmniSciDB  72c90bc290
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ScanNodeTableKeyCollector Class Referencefinal

#include <QueryPlanDagCache.h>

+ Inheritance diagram for ScanNodeTableKeyCollector:
+ Collaboration diagram for ScanNodeTableKeyCollector:

Static Public Member Functions

static std::unordered_set< size_t > getScanNodeTableKey (RelAlgNode const *rel_alg_node)
 

Private Member Functions

void visit (RelScan const *scan_node) override
 

Private Attributes

std::unordered_set< size_t > table_keys_
 

Additional Inherited Members

- Public Member Functions inherited from RelRexDagVisitor
virtual ~RelRexDagVisitor ()=default
 
virtual void visit (RelAlgNode const *)
 
virtual void visit (RexScalar const *)
 
- Protected Member Functions inherited from RelRexDagVisitor
virtual void visit (RelAggregate const *)
 
virtual void visit (RelCompound const *)
 
virtual void visit (RelFilter const *)
 
virtual void visit (RelJoin const *)
 
virtual void visit (RelLeftDeepInnerJoin const *)
 
virtual void visit (RelLogicalUnion const *)
 
virtual void visit (RelLogicalValues const *)
 
virtual void visit (RelModify const *)
 
virtual void visit (RelProject const *)
 
virtual void visit (RelSort const *)
 
virtual void visit (RelTableFunction const *)
 
virtual void visit (RelTranslatedJoin const *)
 
virtual void visit (RexAbstractInput const *)
 
virtual void visit (RexCase const *)
 
virtual void visit (RexFunctionOperator const *)
 
virtual void visit (RexInput const *)
 
virtual void visit (RexLiteral const *)
 
virtual void visit (RexOperator const *)
 
virtual void visit (RexRef const *)
 
virtual void visit (RexSubQuery const *)
 
virtual void visit (RexWindowFunctionOperator const *)
 
void castAndVisit (RelAlgNode const *)
 

Detailed Description

Definition at line 75 of file QueryPlanDagCache.h.

Member Function Documentation

static std::unordered_set<size_t> ScanNodeTableKeyCollector::getScanNodeTableKey ( RelAlgNode const *  rel_alg_node)
inlinestatic

Definition at line 79 of file QueryPlanDagCache.h.

References table_keys_, and visit().

Referenced by RelAlgExecutor::executeTableFunction(), RelAlgExecutor::executeWorkUnit(), and QueryPlanDagExtractor::handleTranslatedJoin().

79  {
80  ScanNodeTableKeyCollector scan_node_table_key_collector;
81  scan_node_table_key_collector.visit(rel_alg_node);
82  return std::move(scan_node_table_key_collector.table_keys_);
83  }
void visit(RelScan const *scan_node) override
std::unordered_set< size_t > table_keys_

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ScanNodeTableKeyCollector::visit ( RelScan const *  scan_node)
inlineoverrideprivatevirtual

Reimplemented from RelRexDagVisitor.

Definition at line 86 of file QueryPlanDagCache.h.

References CHECK, TableDescriptor::fragmenter, RelScan::getTableDescriptor(), hash_value(), table_keys_, and RelRexDagVisitor::visit().

Referenced by getScanNodeTableKey().

86  {
87  CHECK(scan_node->getTableDescriptor());
88  CHECK(scan_node->getTableDescriptor()->fragmenter);
89  auto hashed_chunk_key = boost::hash_value(scan_node->getTableDescriptor()
90  ->fragmenter->getFragmentsForQuery()
91  .chunkKeyPrefix);
92  table_keys_.insert(hashed_chunk_key);
93  RelRexDagVisitor::visit(scan_node);
94  }
virtual void visit(RelAlgNode const *)
std::size_t hash_value(RexAbstractInput const &rex_ab_input)
Definition: RelAlgDag.cpp:3525
#define CHECK(condition)
Definition: Logger.h:291
std::unordered_set< size_t > table_keys_

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

std::unordered_set<size_t> ScanNodeTableKeyCollector::table_keys_
private

Definition at line 96 of file QueryPlanDagCache.h.

Referenced by getScanNodeTableKey(), and visit().


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