From 9de7eb9f268f340e3be663cdd5ddfb91a7752d62 Mon Sep 17 00:00:00 2001 From: obdev Date: Fri, 12 Aug 2022 20:09:43 +0800 Subject: [PATCH] fix bug: create table xxx partition by xxx should not succeed when part expr with T_OP_REGEXP --- .../expr/ob_raw_expr_part_expr_checker.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/sql/resolver/expr/ob_raw_expr_part_expr_checker.cpp b/src/sql/resolver/expr/ob_raw_expr_part_expr_checker.cpp index ca668bbdd..a91994c0c 100644 --- a/src/sql/resolver/expr/ob_raw_expr_part_expr_checker.cpp +++ b/src/sql/resolver/expr/ob_raw_expr_part_expr_checker.cpp @@ -155,9 +155,19 @@ int ObRawExprPartExprChecker::visit(ObColumnRefRawExpr& expr) int ObRawExprPartExprChecker::visit(ObOpRawExpr& expr) { + int ret = OB_SUCCESS; - if (OB_FAIL(default_check_args(expr))) { - LOG_WARN("default_check_args failed", K(ret)); + switch (expr.get_expr_type()) { + case T_OP_REGEXP: { + ret = OB_ERR_PARTITION_FUNCTION_IS_NOT_ALLOWED; + LOG_WARN("invalid partition function", K(ret), "item_type", expr.get_expr_type()); + break; + } + default: { + if (OB_FAIL(default_check_args(expr))) { + LOG_WARN("default_check_args failed", K(ret)); + } + } } return ret; } -- GitLab