From 190d91109a059d9aaa9bfb866d57d0146c67dd5f Mon Sep 17 00:00:00 2001 From: sdc Date: Wed, 24 May 2023 08:11:08 +0000 Subject: [PATCH] fix create index on column default sequence bug --- src/sql/resolver/expr/ob_raw_expr_util.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/sql/resolver/expr/ob_raw_expr_util.cpp b/src/sql/resolver/expr/ob_raw_expr_util.cpp index 9f5c0d537b..4956f557a7 100644 --- a/src/sql/resolver/expr/ob_raw_expr_util.cpp +++ b/src/sql/resolver/expr/ob_raw_expr_util.cpp @@ -1649,8 +1649,19 @@ int ObRawExprUtils::build_seq_nextval_expr(ObRawExpr *&expr, uint64_t seq_id, ObDMLStmt *stmt) { - return build_seq_nextval_expr(expr, session_info, expr_factory, q_name.database_name_, - q_name.tbl_name_, q_name.col_name_, seq_id, stmt); + int ret = OB_SUCCESS; + if (OB_ISNULL(session_info)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("session info is NULL", K(ret)); + } else { + const ObString &database_name = q_name.database_name_.empty() ? + session_info->get_database_name() : q_name.database_name_; + if (OB_FAIL(build_seq_nextval_expr(expr, session_info, expr_factory, database_name, + q_name.tbl_name_, q_name.col_name_, seq_id, stmt))) { + LOG_WARN("build seq nextval expr failed", K(ret)); + } + } + return ret; } // build oracle sequence_object.currval, sequence_object.nextval expr @@ -1669,7 +1680,7 @@ int ObRawExprUtils::build_seq_nextval_expr(ObRawExpr *&expr, ObConstRawExpr *col_id_expr = NULL; if (OB_ISNULL(session_info) || OB_ISNULL(expr_factory)) { ret = OB_ERR_UNEXPECTED; - LOG_WARN("session info is NULL", K(session_info), K(expr_factory)); + LOG_WARN("session info is NULL", K(ret), K(session_info), K(expr_factory)); } else if (NULL != stmt && OB_FAIL(stmt->get_sequence_expr(exists_seq_expr, tbl_name, col_name,