From 5c56b88b5b37127891f09ab2ba304a8de6593b3e Mon Sep 17 00:00:00 2001 From: XIAO-HOU <372060054@qq.com> Date: Mon, 12 Aug 2024 15:44:42 +0000 Subject: [PATCH] Add tp to force group by pushdown to storage layer --- src/sql/optimizer/ob_log_plan.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/sql/optimizer/ob_log_plan.cpp b/src/sql/optimizer/ob_log_plan.cpp index 710fe9195..cd17f38b9 100644 --- a/src/sql/optimizer/ob_log_plan.cpp +++ b/src/sql/optimizer/ob_log_plan.cpp @@ -91,6 +91,9 @@ using share::schema::ObColumnSchemaV2; using share::schema::ObSchemaGetterGuard; #include "sql/optimizer/ob_join_property.map" + +ERRSIM_POINT_DEF(EN_FORCE_GBY_PUSHDOWN_STORAGE, "force pushdown group by to storage layer"); + static const char *ExplainColumnName[] = { "ID", @@ -5933,7 +5936,7 @@ int ObLogPlan::check_storage_groupby_pushdown(const ObIArray can_push = false; } else if (group_exprs.count() != 1) { can_push = false; - } else if (aggrs.count() > 5) { + } else if (OB_LIKELY(!EN_FORCE_GBY_PUSHDOWN_STORAGE) && aggrs.count() > 5) { can_push = false; } else if (OB_ISNULL(groupby_column = group_exprs.at(0))) { ret = OB_ERR_UNEXPECTED; @@ -5994,6 +5997,9 @@ int ObLogPlan::check_table_columns_can_storage_pushdown(const uint64_t tenant_id OB_UNLIKELY(!pushdown_groupby_columns.at(0)->is_column_ref_expr())) { ret = OB_ERR_UNEXPECTED; LOG_WARN("get unexpected null", K(ret)); + } else if (OB_UNLIKELY(EN_FORCE_GBY_PUSHDOWN_STORAGE)) { + can_push = true; + LOG_TRACE("force pushdown group by to storage layer", K(ret), K(can_push)); } else if (OB_FALSE_IT(column = static_cast(pushdown_groupby_columns.at(0)))) { } else if (!ObColumnStatParam::is_valid_opt_col_type(column->get_data_type())) { can_push = false;