OmniSciDB  a5dc49c757
 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
visitMLPredict (const Analyzer::MLPredictExpr *ml_predict_expr) const
 
virtual std::set
< shared::TableKey
visitPCAProject (const Analyzer::PCAProjectExpr *pca_project_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 820 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 846 of file IRCodegen.cpp.

848  {
849  auto ret = aggregate; // copy
850  for (const auto& el : next_result) {
851  ret.insert(el);
852  }
853  return ret;
854  }
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 836 of file IRCodegen.cpp.

836  {
837  std::set<shared::TableKey> ret;
838  ret = aggregateResult(ret, visit(bin_oper->get_left_operand()));
839  return aggregateResult(ret, visit(bin_oper->get_right_operand()));
840  }
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:846
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 822 of file IRCodegen.cpp.

823  {
824  return {col_expr->getTableKey()};
825  }
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 827 of file IRCodegen.cpp.

828  {
829  std::set<shared::TableKey> ret;
830  for (size_t i = 0; i < func_expr->getArity(); i++) {
831  ret = aggregateResult(ret, visit(func_expr->getArg(i)));
832  }
833  return ret;
834  }
size_t getArity() const
Definition: Analyzer.h:2746
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:846
const Analyzer::Expr * getArg(const size_t i) const
Definition: Analyzer.h:2748
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 842 of file IRCodegen.cpp.

842  {
843  return visit(u_oper->get_operand());
844  }
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: