Class Analyzer::Expr

class Expr : public std::enable_shared_from_this<Expr>

Subclassed by Analyzer::AggExpr, Analyzer::ArrayExpr, Analyzer::BinOper, Analyzer::CardinalityExpr, Analyzer::CaseExpr, Analyzer::CharLengthExpr, Analyzer::ColumnVar, Analyzer::Constant, Analyzer::DateaddExpr, Analyzer::DatediffExpr, Analyzer::DatetruncExpr, Analyzer::Estimator, Analyzer::ExpressionTuple, Analyzer::ExtractExpr, Analyzer::FunctionOper, Analyzer::GeoBinOper, Analyzer::GeoExpr, Analyzer::GeoUOper, Analyzer::InIntegerSet, Analyzer::InValues, Analyzer::KeyForStringExpr, Analyzer::LikeExpr, Analyzer::LikelihoodExpr, Analyzer::LowerExpr, Analyzer::OffsetInFragment, Analyzer::RangeOper, Analyzer::RegexpExpr, Analyzer::SampleRatioExpr, Analyzer::Subquery, Analyzer::UOper, Analyzer::WidthBucketExpr, Analyzer::WindowFunction

Public Functions

Expr(SQLTypes t, bool notnull)
Expr(SQLTypes t, int d, bool notnull)
Expr(SQLTypes t, int d, int s, bool notnull)
Expr(const SQLTypeInfo &ti, bool has_agg = false)
virtual ~Expr()
std::shared_ptr<Analyzer::Expr> get_shared_ptr()
const SQLTypeInfo &get_type_info() const
void set_type_info(const SQLTypeInfo &ti)
bool get_contains_agg() const
void set_contains_agg(bool a)
std::shared_ptr<Analyzer::Expr> add_cast(const SQLTypeInfo &new_type_info)
virtual void check_group_by(const std::list<std::shared_ptr<Analyzer::Expr>> &groupby) const
virtual std::shared_ptr<Analyzer::Expr> deep_copy() const = 0
virtual std::shared_ptr<Analyzer::Expr> normalize_simple_predicate(int &rte_idx) const
virtual void group_predicates(std::list<const Expr *> &scan_predicates, std::list<const Expr *> &join_predicates, std::list<const Expr *> &const_predicates) const
virtual void collect_rte_idx(std::set<int> &rte_idx_set) const
virtual void collect_column_var(std::set<const ColumnVar *, bool(*colvar_set)( const ColumnVar *, const ColumnVar *)>&, bool include_agg) const
virtual std::shared_ptr<Analyzer::Expr> rewrite_with_targetlist(const std::vector<std::shared_ptr<TargetEntry>> &tlist) const
virtual std::shared_ptr<Analyzer::Expr> rewrite_with_child_targetlist(const std::vector<std::shared_ptr<TargetEntry>> &tlist) const
virtual std::shared_ptr<Analyzer::Expr> rewrite_agg_to_var(const std::vector<std::shared_ptr<TargetEntry>> &tlist) const
virtual bool operator==(const Expr &rhs) const = 0
virtual std::string toString() const = 0
virtual void print() const
void add_unique(std::list<const Expr *> &expr_list) const
virtual void find_expr(bool (*f)(const Expr *), std::list<const Expr *> &expr_list, ) const
std::shared_ptr<Analyzer::Expr> decompress()
virtual void get_domain(DomainSet &domain_set) const

Protected Attributes

SQLTypeInfo type_info
bool contains_agg