Class Analyzer::WidthBucketExpr

class WidthBucketExpr : public Analyzer::Expr

Public Functions

WidthBucketExpr(const std::shared_ptr<Analyzer::Expr> target_value, const std::shared_ptr<Analyzer::Expr> lower_bound, const std::shared_ptr<Analyzer::Expr> upper_bound, const std::shared_ptr<Analyzer::Expr> partition_count)
const Expr *get_target_value() const
const Expr *get_lower_bound() const
const Expr *get_upper_bound() const
const Expr *get_partition_count() const
std::shared_ptr<Analyzer::Expr> deep_copy() const
void group_predicates(std::list<const Expr *> &scan_predicates, std::list<const Expr *> &join_predicates, std::list<const Expr *> &const_predicates) const
void collect_rte_idx(std::set<int> &rte_idx_set) const
void collect_column_var(std::set<const ColumnVar *, bool(*colvar_set)( const ColumnVar *, const ColumnVar *)>&, bool include_agg) const
std::shared_ptr<Analyzer::Expr> rewrite_with_targetlist(const std::vector<std::shared_ptr<TargetEntry>> &tlist) const
std::shared_ptr<Analyzer::Expr> rewrite_with_child_targetlist(const std::vector<std::shared_ptr<TargetEntry>> &tlist) const
std::shared_ptr<Analyzer::Expr> rewrite_agg_to_var(const std::vector<std::shared_ptr<TargetEntry>> &tlist) const
double get_bound_val(const Analyzer::Expr *bound_expr) const
int32_t get_partition_count_val() const
template<typename T>
int32_t compute_bucket(T target_const_val, SQLTypeInfo &ti) const
bool operator==(const Expr &rhs) const
std::string toString() const
void find_expr(bool (*f)(const Expr *), std::list<const Expr *> &expr_list, ) const
bool can_skip_out_of_bound_check() const
void skip_out_of_bound_check() const
void set_constant_expr() const
bool is_constant_expr() const

Private Members

std::shared_ptr<Analyzer::Expr> target_value_
std::shared_ptr<Analyzer::Expr> lower_bound_
std::shared_ptr<Analyzer::Expr> upper_bound_
std::shared_ptr<Analyzer::Expr> partition_count_
bool constant_expr_
bool skip_out_of_bound_check_