diff --git a/src/sql/engine/expr/ob_expr_locate.cpp b/src/sql/engine/expr/ob_expr_locate.cpp index 9f80c6486f..26c576029f 100644 --- a/src/sql/engine/expr/ob_expr_locate.cpp +++ b/src/sql/engine/expr/ob_expr_locate.cpp @@ -26,7 +26,7 @@ namespace sql { ObExprLocate::ObExprLocate(ObIAllocator &alloc) - : ObLocationExprOperator(alloc, T_FUN_SYS_LOCATE, N_LOCATE, TWO_OR_THREE, NOT_VALID_FOR_GENERATED_COL, NOT_ROW_DIMENSION) {} + : ObLocationExprOperator(alloc, T_FUN_SYS_LOCATE, N_LOCATE, TWO_OR_THREE, NOT_ROW_DIMENSION) {} ObExprLocate::~ObExprLocate() { diff --git a/src/sql/engine/expr/ob_expr_operator.h b/src/sql/engine/expr/ob_expr_operator.h index 444aa02b6f..43da50983b 100644 --- a/src/sql/engine/expr/ob_expr_operator.h +++ b/src/sql/engine/expr/ob_expr_operator.h @@ -981,7 +981,7 @@ class ObFuncExprOperator : public ObExprOperator public: ObFuncExprOperator(common::ObIAllocator &alloc, ObExprOperatorType type, const char *name, int32_t param_num, ObValidForGeneratedColFlag valid_for_generated_col, int32_t dimension, bool is_internal_for_mysql = false, bool is_internal_for_oracle = false) - : ObExprOperator(alloc, type, name, param_num, valid_for_generated_col, dimension, is_internal_for_oracle) + : ObExprOperator(alloc, type, name, param_num, valid_for_generated_col, dimension, is_internal_for_mysql, is_internal_for_oracle) {}; virtual ~ObFuncExprOperator() {}; diff --git a/src/sql/engine/expr/ob_expr_st_geomfromwkb.cpp b/src/sql/engine/expr/ob_expr_st_geomfromwkb.cpp index 8ae93ca05b..5201914579 100644 --- a/src/sql/engine/expr/ob_expr_st_geomfromwkb.cpp +++ b/src/sql/engine/expr/ob_expr_st_geomfromwkb.cpp @@ -31,7 +31,7 @@ namespace sql ObIExprSTGeomFromWKB::ObIExprSTGeomFromWKB(common::ObIAllocator &alloc, ObExprOperatorType type, const char *name, int32_t param_num, ObValidForGeneratedColFlag valid_for_generated_col, int32_t dimension) - : ObFuncExprOperator(alloc, type, name, param_num, valid_for_generated_col, NOT_VALID_FOR_GENERATED_COL, dimension) + : ObFuncExprOperator(alloc, type, name, param_num, valid_for_generated_col, dimension) { } diff --git a/src/sql/rewrite/ob_transform_predicate_move_around.cpp b/src/sql/rewrite/ob_transform_predicate_move_around.cpp index 7deb57295f..fb581b98cd 100644 --- a/src/sql/rewrite/ob_transform_predicate_move_around.cpp +++ b/src/sql/rewrite/ob_transform_predicate_move_around.cpp @@ -2029,7 +2029,7 @@ int ObTransformPredicateMoveAround::pushdown_through_groupby( generalized_columns, stmt.get_group_exprs())) { // do nothing OPT_TRACE(pred, "has none group by expr, can not pushdown"); - } else if (is_mysql_mode() && ObOptimizerUtil::overlap_exprs( + } else if (ObOptimizerUtil::overlap_exprs( generalized_columns, stmt.get_rollup_exprs())) { //do nothing OPT_TRACE(pred, "has rollup expr in mysql mode, can not pushdown"); diff --git a/src/sql/rewrite/ob_transform_simplify_orderby.cpp b/src/sql/rewrite/ob_transform_simplify_orderby.cpp index 78526d0e2a..9ad47f6ea4 100644 --- a/src/sql/rewrite/ob_transform_simplify_orderby.cpp +++ b/src/sql/rewrite/ob_transform_simplify_orderby.cpp @@ -130,7 +130,8 @@ int ObTransformSimplifyOrderby::remove_order_by_for_view_stmt(ObDMLStmt *stmt, b if (OB_ISNULL(aggr_items.at(i))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected null", K(ret), K(aggr_items)); - } else if (T_FUN_WM_CONCAT == aggr_items.at(i)->get_expr_type()) { + } else if (T_FUN_WM_CONCAT == aggr_items.at(i)->get_expr_type() + || T_FUN_GROUP_CONCAT == aggr_items.at(i)->get_expr_type()) { can_remove = false; } }