OmniSciDB  c1a53651b2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
anonymous_namespace{IRCodegen.cpp}::ExprTableIdVisitor Class Reference
+ Inheritance diagram for anonymous_namespace{IRCodegen.cpp}::ExprTableIdVisitor:
+ Collaboration diagram for anonymous_namespace{IRCodegen.cpp}::ExprTableIdVisitor:

Protected Member Functions

std::set< shared::TableKeyvisitColumnVar (const Analyzer::ColumnVar *col_expr) const final
 
std::set< shared::TableKeyvisitFunctionOper (const Analyzer::FunctionOper *func_expr) const final
 
std::set< shared::TableKeyvisitBinOper (const Analyzer::BinOper *bin_oper) const final
 
std::set< shared::TableKeyvisitUOper (const Analyzer::UOper *u_oper) const final
 
std::set< shared::TableKeyaggregateResult (const std::set< shared::TableKey > &aggregate, const std::set< shared::TableKey > &next_result) const final
 
- Protected Member Functions inherited from ScalarExprVisitor< std::set< shared::TableKey > >
virtual std::set
< shared::TableKey
visitVar (const Analyzer::Var *) const
 
virtual std::set
< shared::TableKey
visitColumnVarTuple (const Analyzer::ExpressionTuple *) const
 
virtual std::set
< shared::TableKey
visitConstant (const Analyzer::Constant *) const
 
virtual std::set
< shared::TableKey
visitGeoExpr (const Analyzer::GeoExpr *geo_expr) const
 
virtual std::set
< shared::TableKey
visitInValues (const Analyzer::InValues *in_values) const
 
virtual std::set
< shared::TableKey
visitInIntegerSet (const Analyzer::InIntegerSet *in_integer_set) const
 
virtual std::set
< shared::TableKey
visitCharLength (const Analyzer::CharLengthExpr *char_length) const
 
virtual std::set
< shared::TableKey
visitKeyForString (const Analyzer::KeyForStringExpr *key_for_string) const
 
virtual std::set
< shared::TableKey
visitSampleRatio (const Analyzer::SampleRatioExpr *sample_ratio) const
 
virtual std::set
< shared::TableKey
visitStringOper (const Analyzer::StringOper *string_oper) const
 
virtual std::set
< shared::TableKey
visitCardinality (const Analyzer::CardinalityExpr *cardinality) const
 
virtual std::set
< shared::TableKey
visitLikeExpr (const Analyzer::LikeExpr *like) const
 
virtual std::set
< shared::TableKey
visitRegexpExpr (const Analyzer::RegexpExpr *regexp) const
 
virtual std::set
< shared::TableKey
visitWidthBucket (const Analyzer::WidthBucketExpr *width_bucket_expr) const
 
virtual std::set
< shared::TableKey
visitCaseExpr (const Analyzer::CaseExpr *case_) const
 
virtual std::set
< shared::TableKey
visitDatetruncExpr (const Analyzer::DatetruncExpr *datetrunc) const
 
virtual std::set
< shared::TableKey
visitExtractExpr (const Analyzer::ExtractExpr *extract) const
 
virtual std::set
< shared::TableKey
visitFunctionOperWithCustomTypeHandling (const Analyzer::FunctionOperWithCustomTypeHandling *func_oper) const
 
virtual std::set
< shared::TableKey
visitArrayOper (Analyzer::ArrayExpr const *array_expr) const
 
virtual std::set
< shared::TableKey
visitGeoUOper (const Analyzer::GeoUOper *geo_expr) const
 
virtual std::set
< shared::TableKey
visitGeoBinOper (const Analyzer::GeoBinOper *geo_expr) const
 
virtual std::set
< shared::TableKey
visitWindowFunction (const Analyzer::WindowFunction *window_func) const
 
virtual std::set
< shared::TableKey
visitDatediffExpr (const Analyzer::DatediffExpr *datediff) const
 
virtual std::set
< shared::TableKey
visitDateaddExpr (const Analyzer::DateaddExpr *dateadd) const
 
virtual std::set
< shared::TableKey
visitLikelihood (const Analyzer::LikelihoodExpr *likelihood) const
 
virtual std::set
< shared::TableKey
visitOffsetInFragment (const Analyzer::OffsetInFragment *) const
 
virtual std::set
< shared::TableKey
visitAggExpr (const Analyzer::AggExpr *agg) const
 
virtual std::set
< shared::TableKey
visitRangeJoinOper (const Analyzer::RangeOper *range_oper) const
 
virtual void visitBegin () const
 
virtual std::set
< shared::TableKey
defaultResult () const
 

Additional Inherited Members

- Public Member Functions inherited from ScalarExprVisitor< std::set< shared::TableKey > >
std::set< shared::TableKeyvisit (const Analyzer::Expr *expr) const
 

Detailed Description

Definition at line 753 of file IRCodegen.cpp.

Member Function Documentation

std::set<shared::TableKey> anonymous_namespace{IRCodegen.cpp}::ExprTableIdVisitor::aggregateResult ( const std::set< shared::TableKey > &  aggregate,
const std::set< shared::TableKey > &  next_result 
) const
inlinefinalprotectedvirtual

Reimplemented from ScalarExprVisitor< std::set< shared::TableKey > >.

Definition at line 779 of file IRCodegen.cpp.

781  {
782  auto ret = aggregate; // copy
783  for (const auto& el : next_result) {
784  ret.insert(el);
785  }
786  return ret;
787  }
std::set<shared::TableKey> anonymous_namespace{IRCodegen.cpp}::ExprTableIdVisitor::visitBinOper ( const Analyzer::BinOper bin_oper) const
inlinefinalprotectedvirtual

Reimplemented from ScalarExprVisitor< std::set< shared::TableKey > >.

Definition at line 769 of file IRCodegen.cpp.

769  {
770  std::set<shared::TableKey> ret;
771  ret = aggregateResult(ret, visit(bin_oper->get_left_operand()));
772  return aggregateResult(ret, visit(bin_oper->get_right_operand()));
773  }
const Expr * get_right_operand() const
Definition: Analyzer.h:456
std::set< shared::TableKey > visit(const Analyzer::Expr *expr) const
std::set< shared::TableKey > aggregateResult(const std::set< shared::TableKey > &aggregate, const std::set< shared::TableKey > &next_result) const final
Definition: IRCodegen.cpp:779
const Expr * get_left_operand() const
Definition: Analyzer.h:455
std::set<shared::TableKey> anonymous_namespace{IRCodegen.cpp}::ExprTableIdVisitor::visitColumnVar ( const Analyzer::ColumnVar col_expr) const
inlinefinalprotectedvirtual

Reimplemented from ScalarExprVisitor< std::set< shared::TableKey > >.

Definition at line 755 of file IRCodegen.cpp.

756  {
757  return {col_expr->getTableKey()};
758  }
shared::TableKey getTableKey() const
Definition: Analyzer.h:199
std::set<shared::TableKey> anonymous_namespace{IRCodegen.cpp}::ExprTableIdVisitor::visitFunctionOper ( const Analyzer::FunctionOper func_expr) const
inlinefinalprotectedvirtual

Reimplemented from ScalarExprVisitor< std::set< shared::TableKey > >.

Definition at line 760 of file IRCodegen.cpp.

761  {
762  std::set<shared::TableKey> ret;
763  for (size_t i = 0; i < func_expr->getArity(); i++) {
764  ret = aggregateResult(ret, visit(func_expr->getArg(i)));
765  }
766  return ret;
767  }
size_t getArity() const
Definition: Analyzer.h:2408
std::set< shared::TableKey > visit(const Analyzer::Expr *expr) const
std::set< shared::TableKey > aggregateResult(const std::set< shared::TableKey > &aggregate, const std::set< shared::TableKey > &next_result) const final
Definition: IRCodegen.cpp:779
const Analyzer::Expr * getArg(const size_t i) const
Definition: Analyzer.h:2410
std::set<shared::TableKey> anonymous_namespace{IRCodegen.cpp}::ExprTableIdVisitor::visitUOper ( const Analyzer::UOper u_oper) const
inlinefinalprotectedvirtual

Reimplemented from ScalarExprVisitor< std::set< shared::TableKey > >.

Definition at line 775 of file IRCodegen.cpp.

775  {
776  return visit(u_oper->get_operand());
777  }
std::set< shared::TableKey > visit(const Analyzer::Expr *expr) const
const Expr * get_operand() const
Definition: Analyzer.h:384

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