From d05faec270c0ca1498ee426ab05e122ab2c60abf Mon Sep 17 00:00:00 2001 From: seuwebber Date: Tue, 8 Oct 2024 07:46:06 +0000 Subject: [PATCH] [CP] [to #2024091200104454293]fix bug PL compile triggered by dbms_sql --- src/sql/ob_spi.cpp | 6 +----- src/sql/ob_sql.cpp | 6 +++++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sql/ob_spi.cpp b/src/sql/ob_spi.cpp index bc70560eed..e5b0d936d0 100644 --- a/src/sql/ob_spi.cpp +++ b/src/sql/ob_spi.cpp @@ -2212,11 +2212,7 @@ int ObSPIService::spi_resolve_prepare(common::ObIAllocator &allocator, ret = OB_INVALID_ARGUMENT; LOG_WARN("Argument passed in is NULL", K(sql), K(ret)); } else { - bool is_dbms_sql = false; - if (NULL != session.get_cur_exec_ctx() && NULL != session.get_cur_exec_ctx()->get_sql_ctx()) { - is_dbms_sql =session.get_cur_exec_ctx()->get_sql_ctx()->is_dbms_sql_; - } - PLPrepareCtx pl_prepare_ctx(session, secondary_namespace, false, is_dbms_sql, is_cursor); + PLPrepareCtx pl_prepare_ctx(session, secondary_namespace, false, false, is_cursor); const int64_t start = ::oceanbase::common::ObTimeUtility::current_time(); SMART_VAR(PLPrepareResult, pl_prepare_result) { diff --git a/src/sql/ob_sql.cpp b/src/sql/ob_sql.cpp index f43bae9c40..0a072efee8 100644 --- a/src/sql/ob_sql.cpp +++ b/src/sql/ob_sql.cpp @@ -1494,9 +1494,13 @@ int ObSql::handle_pl_prepare(const ObString &sql, if (OB_SUCC(ret)) { ObIAllocator &allocator = *pl_prepare_result.get_allocator(); ObParser parser(allocator, sess.get_sql_mode(), sess.get_charsets4parser()); + bool is_for_trigger = false; + if (NULL != pl_prepare_ctx.secondary_ns_) { + is_for_trigger = ObTriggerInfo::is_trigger_package_id(pl_prepare_ctx.secondary_ns_->get_package_id()); + } ParseMode parse_mode = pl_prepare_ctx.is_dbms_sql_ ? DBMS_SQL_MODE : pl_prepare_ctx.is_dynamic_sql_ ? DYNAMIC_SQL_MODE : - sess.is_for_trigger_package() ? TRIGGER_MODE : STD_MODE; + is_for_trigger ? TRIGGER_MODE : STD_MODE; context.is_dynamic_sql_ = pl_prepare_ctx.is_dynamic_sql_; context.is_dbms_sql_ = pl_prepare_ctx.is_dbms_sql_;