OmniSciDB  1dac507f6e
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AllRangeTableIndexVisitor Class Reference

#include <RangeTableIndexVisitor.h>

+ Inheritance diagram for AllRangeTableIndexVisitor:
+ Collaboration diagram for AllRangeTableIndexVisitor:

Protected Member Functions

std::set< int > visitColumnVar (const Analyzer::ColumnVar *column) const override
 
std::set< int > visitColumnVarTuple (const Analyzer::ExpressionTuple *expr_tuple) const override
 
std::set< int > aggregateResult (const std::set< int > &aggregate, const std::set< int > &next_result) const override
 
- Protected Member Functions inherited from ScalarExprVisitor< std::set< int > >
virtual std::set< int > visitVar (const Analyzer::Var *) const
 
virtual std::set< int > visitConstant (const Analyzer::Constant *) const
 
virtual std::set< int > visitUOper (const Analyzer::UOper *uoper) const
 
virtual std::set< int > visitBinOper (const Analyzer::BinOper *bin_oper) const
 
virtual std::set< int > visitInValues (const Analyzer::InValues *in_values) const
 
virtual std::set< int > visitInIntegerSet (const Analyzer::InIntegerSet *in_integer_set) const
 
virtual std::set< int > visitCharLength (const Analyzer::CharLengthExpr *char_length) const
 
virtual std::set< int > visitKeyForString (const Analyzer::KeyForStringExpr *key_for_string) const
 
virtual std::set< int > visitLower (const Analyzer::LowerExpr *lower_expr) const
 
virtual std::set< int > visitCardinality (const Analyzer::CardinalityExpr *cardinality) const
 
virtual std::set< int > visitLikeExpr (const Analyzer::LikeExpr *like) const
 
virtual std::set< int > visitRegexpExpr (const Analyzer::RegexpExpr *regexp) const
 
virtual std::set< int > visitCaseExpr (const Analyzer::CaseExpr *case_) const
 
virtual std::set< int > visitDatetruncExpr (const Analyzer::DatetruncExpr *datetrunc) const
 
virtual std::set< int > visitExtractExpr (const Analyzer::ExtractExpr *extract) const
 
virtual std::set< int > visitFunctionOperWithCustomTypeHandling (const Analyzer::FunctionOperWithCustomTypeHandling *func_oper) const
 
virtual std::set< int > visitArrayOper (Analyzer::ArrayExpr const *array_expr) const
 
virtual std::set< int > visitGeoExpr (const Analyzer::GeoExpr *geo_expr) const
 
virtual std::set< int > visitFunctionOper (const Analyzer::FunctionOper *func_oper) const
 
virtual std::set< int > visitWindowFunction (const Analyzer::WindowFunction *window_func) const
 
virtual std::set< int > visitDatediffExpr (const Analyzer::DatediffExpr *datediff) const
 
virtual std::set< int > visitDateaddExpr (const Analyzer::DateaddExpr *dateadd) const
 
virtual std::set< int > visitLikelihood (const Analyzer::LikelihoodExpr *likelihood) const
 
virtual std::set< int > visitOffsetInFragment (const Analyzer::OffsetInFragment *) const
 
virtual std::set< int > visitAggExpr (const Analyzer::AggExpr *agg) const
 
virtual std::set< int > defaultResult () const
 

Additional Inherited Members

- Public Member Functions inherited from ScalarExprVisitor< std::set< int > >
std::set< int > visit (const Analyzer::Expr *expr) const
 

Detailed Description

Definition at line 44 of file RangeTableIndexVisitor.h.

Member Function Documentation

std::set<int> AllRangeTableIndexVisitor::aggregateResult ( const std::set< int > &  aggregate,
const std::set< int > &  next_result 
) const
inlineoverrideprotectedvirtual

Reimplemented from ScalarExprVisitor< std::set< int > >.

Definition at line 61 of file RangeTableIndexVisitor.h.

References run_benchmark_import::result.

62  {
63  auto result = aggregate;
64  result.insert(next_result.begin(), next_result.end());
65  return result;
66  }
std::set<int> AllRangeTableIndexVisitor::visitColumnVar ( const Analyzer::ColumnVar column) const
inlineoverrideprotectedvirtual

Reimplemented from ScalarExprVisitor< std::set< int > >.

Definition at line 46 of file RangeTableIndexVisitor.h.

References Analyzer::ColumnVar::get_rte_idx().

46  {
47  return {column->get_rte_idx()};
48  }
int get_rte_idx() const
Definition: Analyzer.h:196

+ Here is the call graph for this function:

std::set<int> AllRangeTableIndexVisitor::visitColumnVarTuple ( const Analyzer::ExpressionTuple expr_tuple) const
inlineoverrideprotectedvirtual

Reimplemented from ScalarExprVisitor< std::set< int > >.

Definition at line 50 of file RangeTableIndexVisitor.h.

References Analyzer::ExpressionTuple::getTuple(), run_benchmark_import::result, and ScalarExprVisitor< T >::visit().

51  {
53  std::set<int> result;
54  for (const auto& expr_component : expr_tuple->getTuple()) {
55  const auto component_rte_set = visitor.visit(expr_component.get());
56  result.insert(component_rte_set.begin(), component_rte_set.end());
57  }
58  return result;
59  }
T visit(const Analyzer::Expr *expr) const
const std::vector< std::shared_ptr< Analyzer::Expr > > & getTuple() const
Definition: Analyzer.h:244

+ Here is the call graph for this function:


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