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

#include <RexSubQueryIdCollector.h>

+ Inheritance diagram for RexSubQueryIdCollector:
+ Collaboration diagram for RexSubQueryIdCollector:

Public Types

using Ids = std::unordered_set< unsigned >
 

Static Public Member Functions

static Ids getLiveRexSubQueryIds (RelAlgNode const *)
 

Private Member Functions

void visit (RexSubQuery const *) override
 

Private Attributes

Ids ids_
 

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 (RelScan 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 (RexWindowFunctionOperator const *)
 
void castAndVisit (RelAlgNode const *)
 

Detailed Description

Definition at line 30 of file RexSubQueryIdCollector.h.

Member Typedef Documentation

using RexSubQueryIdCollector::Ids = std::unordered_set<unsigned>

Definition at line 34 of file RexSubQueryIdCollector.h.

Member Function Documentation

RexSubQueryIdCollector::Ids RexSubQueryIdCollector::getLiveRexSubQueryIds ( RelAlgNode const *  rel_alg_node)
static

Definition at line 19 of file RexSubQueryIdCollector.cpp.

References ids_, and visit().

Referenced by eliminate_dead_subqueries().

20  {
21  RexSubQueryIdCollector rex_sub_query_id_collector;
22  rex_sub_query_id_collector.visit(rel_alg_node);
23  return std::move(rex_sub_query_id_collector.ids_);
24 }
void visit(RexSubQuery const *) override

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void RexSubQueryIdCollector::visit ( RexSubQuery const *  rex_sub_query)
overrideprivatevirtual

Reimplemented from RelRexDagVisitor.

Definition at line 26 of file RexSubQueryIdCollector.cpp.

References ids_, and RelRexDagVisitor::visit().

Referenced by getLiveRexSubQueryIds().

26  {
27  ids_.insert(rex_sub_query->getId());
28  RelRexDagVisitor::visit(rex_sub_query);
29 }
virtual void visit(RelAlgNode const *)

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

Ids RexSubQueryIdCollector::ids_
private

Definition at line 40 of file RexSubQueryIdCollector.h.

Referenced by getLiveRexSubQueryIds(), and visit().


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