17 #ifndef QUERYENGINE_SCALAREXPRVISITOR_H
18 #define QUERYENGINE_SCALAREXPRVISITOR_H
20 #include "../Analyzer/Analyzer.h"
37 if (column_var_tuple) {
120 const auto func_with_custom_type_handling =
122 if (func_with_custom_type_handling) {
154 if (offset_in_fragment) {
162 if (range_join_oper) {
195 for (
const auto expr : geo_expr_children) {
204 for (
const auto& in_value : value_list) {
234 for (
const auto& arg : string_oper->
getOwnArgs()) {
279 for (
const auto& regressor_value : regressor_values) {
289 for (
const auto& feature_value : feature_values) {
299 for (
const auto& expr_pair : expr_pair_list) {
334 for (
const auto& arg : geo_expr->
getArgs0()) {
342 for (
const auto& arg : geo_expr->
getArgs0()) {
345 for (
const auto& arg : geo_expr->
getArgs1()) {
353 for (
size_t i = 0; i < func_oper->
getArity(); ++i) {
361 for (
const auto& arg : window_func->
getArgs()) {
367 for (
const auto& order_key : window_func->
getOrderKeys()) {
420 #endif // QUERYENGINE_SCALAREXPRVISITOR_H
virtual T visitAggExpr(const Analyzer::AggExpr *agg) const
const Expr * get_partition_count() const
virtual T aggregateResult(const T &aggregate, const T &next_result) const
virtual T visitOffsetInFragment(const Analyzer::OffsetInFragment *) const
const Expr * get_else_expr() const
const std::vector< std::shared_ptr< Analyzer::Expr > > & getArgs0() const
const Expr * get_escape_expr() const
const Expr * get_escape_expr() const
const Expr * get_right_operand() const
virtual T visitGeoBinOper(const Analyzer::GeoBinOper *geo_expr) const
const Expr * get_arg() const
const Expr * get_arg() const
T visit(const Analyzer::Expr *expr) const
virtual T visitCardinality(const Analyzer::CardinalityExpr *cardinality) const
virtual T visitGeoUOper(const Analyzer::GeoUOper *geo_expr) const
virtual std::vector< Analyzer::Expr * > getChildExprs() const
const std::vector< std::shared_ptr< Analyzer::Expr > > & getOrderKeys() const
virtual T visitExtractExpr(const Analyzer::ExtractExpr *extract) const
const Expr * get_left_operand() const
const Expr * get_arg() const
virtual T visitLikelihood(const Analyzer::LikelihoodExpr *likelihood) const
virtual T visitCharLength(const Analyzer::CharLengthExpr *char_length) const
virtual T visitVar(const Analyzer::Var *) const
RUNTIME_EXPORT ALWAYS_INLINE DEVICE int32_t width_bucket(const double target_value, const double lower_bound, const double upper_bound, const double scale_factor, const int32_t partition_count)
virtual T visitGeoExpr(const Analyzer::GeoExpr *geo_expr) const
virtual T visitPCAProject(const Analyzer::PCAProjectExpr *pca_project_expr) const
virtual T visitLikeExpr(const Analyzer::LikeExpr *like) const
const Expr * get_pc_dimension_value() const
const std::vector< std::shared_ptr< Analyzer::Expr > > & getArgs() const
virtual void visitBegin() const
const std::vector< std::shared_ptr< Analyzer::Expr > > & getArgs0() const
virtual T visitColumnVar(const Analyzer::ColumnVar *) const
virtual T visitWindowFunction(const Analyzer::WindowFunction *window_func) const
const Expr * get_start_expr() const
const Expr * get_right_operand() const
size_t getElementCount() const
RUNTIME_EXPORT ALWAYS_INLINE DEVICE int32_t char_length(const char *str, const int32_t str_len)
virtual T visitDatediffExpr(const Analyzer::DatediffExpr *datediff) const
const Expr * get_pattern_expr() const
virtual T visitDateaddExpr(const Analyzer::DateaddExpr *dateadd) const
Expression class for string functions The "arg" constructor parameter must be an expression that reso...
const Expr * get_from_expr() const
const Expr * get_datetime_expr() const
virtual T visitMLPredict(const Analyzer::MLPredictExpr *ml_predict_expr) const
const Expr * get_like_expr() const
const Analyzer::Expr * getArg(const size_t i) const
virtual T visitRangeJoinOper(const Analyzer::RangeOper *range_oper) const
const Expr * get_operand() const
const Expr * get_arg() const
const Expr * get_model_value() const
const Expr * get_arg() const
const std::list< std::shared_ptr< Analyzer::Expr > > & get_value_list() const
virtual T visitConstant(const Analyzer::Constant *) const
virtual T visitKeyForString(const Analyzer::KeyForStringExpr *key_for_string) const
virtual T visitCaseExpr(const Analyzer::CaseExpr *case_) const
virtual T visitBinOper(const Analyzer::BinOper *bin_oper) const
const Expr * get_target_value() const
const std::vector< std::shared_ptr< Analyzer::Expr > > & get_feature_values() const
const Expr * get_arg() const
virtual T visitInValues(const Analyzer::InValues *in_values) const
virtual T visitInIntegerSet(const Analyzer::InIntegerSet *in_integer_set) const
const Expr * get_end_expr() const
virtual T visitFunctionOperWithCustomTypeHandling(const Analyzer::FunctionOperWithCustomTypeHandling *func_oper) const
virtual T visitFunctionOper(const Analyzer::FunctionOper *func_oper) const
const Expr * get_model_value() const
virtual T visitArrayOper(Analyzer::ArrayExpr const *array_expr) const
virtual T defaultResult() const
const Expr * get_left_operand() const
virtual T visitRegexpExpr(const Analyzer::RegexpExpr *regexp) const
virtual T visitSampleRatio(const Analyzer::SampleRatioExpr *sample_ratio) const
virtual T visitUOper(const Analyzer::UOper *uoper) const
const Expr * get_lower_bound() const
virtual T visitColumnVarTuple(const Analyzer::ExpressionTuple *) const
const Expr * get_arg() const
virtual T visitStringOper(const Analyzer::StringOper *string_oper) const
const std::vector< std::shared_ptr< Analyzer::Expr > > & get_regressor_values() const
virtual T visitDatetruncExpr(const Analyzer::DatetruncExpr *datetrunc) const
const Expr * get_upper_bound() const
const std::vector< std::shared_ptr< Analyzer::Expr > > & getPartitionKeys() const
virtual T visitWidthBucket(const Analyzer::WidthBucketExpr *width_bucket_expr) const
const Expr * get_arg() const
RUNTIME_EXPORT ALWAYS_INLINE DEVICE bool sample_ratio(const double proportion, const int64_t row_offset)
const Expr * get_arg() const
std::vector< std::shared_ptr< Analyzer::Expr > > getOwnArgs() const
const std::vector< std::shared_ptr< Analyzer::Expr > > & getArgs1() const
const std::list< std::pair< std::shared_ptr< Analyzer::Expr >, std::shared_ptr< Analyzer::Expr > > > & get_expr_pair_list() const
const Expr * get_number_expr() const
const Analyzer::Expr * getElement(const size_t i) const
RUNTIME_EXPORT ALWAYS_INLINE DEVICE int32_t width_bucket_expr(const double target_value, const bool reversed, const double lower_bound, const double upper_bound, const int32_t partition_count)