From 8c91096fbb0ca43e673396dbfb5cc6543b2dc796 Mon Sep 17 00:00:00 2001 From: seuwebber Date: Wed, 2 Aug 2023 02:18:23 +0000 Subject: [PATCH] [to #35392602]fix bug trigger timing event resolve --- src/pl/ob_pl_resolver.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/pl/ob_pl_resolver.cpp b/src/pl/ob_pl_resolver.cpp index c215c849b5..6813682872 100644 --- a/src/pl/ob_pl_resolver.cpp +++ b/src/pl/ob_pl_resolver.cpp @@ -10498,7 +10498,9 @@ int ObPLResolver::check_local_variable_read_only( LOG_MYSQL_USER_ERROR(OB_ERR_TRIGGER_CANT_CHANGE_ROW, "OLD", ""); } } - } else if (resolve_ctx_.session_info_.is_for_trigger_package() && lib::is_oracle_mode()) { + } else if (resolve_ctx_.session_info_.is_for_trigger_package() + && lib::is_oracle_mode() + && ObTriggerInfo::is_trigger_body_package_id(ns.get_package_id())) { GET_TRIGGER_INFO; if (OB_FAIL(ret)) { } else if (var->get_name().prefix_match(":")) { @@ -10517,9 +10519,10 @@ int ObPLResolver::check_local_variable_read_only( } } } else if (resolve_ctx_.session_info_.is_for_trigger_package()) { - if (lib::is_oracle_mode()) { + if (ObTriggerInfo::is_trigger_body_package_id(ns.get_package_id()) && lib::is_oracle_mode()) { GET_TRIGGER_INFO; - if (OB_SUCC(ret) && trg_info->has_delete_event()) { + if (OB_SUCC(ret) + && (trg_info->has_delete_event() && !trg_info->has_update_event() && !trg_info->has_insert_event())) { if (var->get_name().prefix_match(":")) { ObString tmp(var->get_name().length() - 1, var->get_name().ptr() + 1); if (0 == trg_info->get_ref_new_name().case_compare(tmp)) {