diff --git a/src/sql/engine/dml/ob_table_delete_op.cpp b/src/sql/engine/dml/ob_table_delete_op.cpp index 8a15aa0bdf..e6ad3cb46c 100644 --- a/src/sql/engine/dml/ob_table_delete_op.cpp +++ b/src/sql/engine/dml/ob_table_delete_op.cpp @@ -205,6 +205,9 @@ OB_INLINE int ObTableDeleteOp::close_table_for_each() if (!del_rtdefs_.at(i).empty()) { const ObDelCtDef &primary_del_ctdef = *MY_SPEC.del_ctdefs_.at(i).at(0); ObDelRtDef &primary_del_rtdef = del_rtdefs_.at(i).at(0); + if (OB_NOT_NULL(primary_del_rtdef.das_rtdef_.table_loc_)) { + primary_del_rtdef.das_rtdef_.table_loc_->is_writing_ = false; + } if (OB_FAIL(ObDMLService::process_after_stmt_trigger(primary_del_ctdef, primary_del_rtdef, dml_rtctx_, diff --git a/src/sql/engine/dml/ob_table_insert_op.cpp b/src/sql/engine/dml/ob_table_insert_op.cpp index d0af90ec52..7d2c0b03c1 100644 --- a/src/sql/engine/dml/ob_table_insert_op.cpp +++ b/src/sql/engine/dml/ob_table_insert_op.cpp @@ -435,6 +435,9 @@ OB_INLINE int ObTableInsertOp::close_table_for_each() if (!ins_rtdefs_.at(i).empty()) { const ObInsCtDef &primary_ins_ctdef = *MY_SPEC.ins_ctdefs_.at(i).at(0); ObInsRtDef &primary_ins_rtdef = ins_rtdefs_.at(i).at(0); + if (OB_NOT_NULL(primary_ins_rtdef.das_rtdef_.table_loc_)) { + primary_ins_rtdef.das_rtdef_.table_loc_->is_writing_ = false; + } if (OB_FAIL(ObDMLService::process_after_stmt_trigger(primary_ins_ctdef, primary_ins_rtdef, dml_rtctx_, diff --git a/src/sql/engine/dml/ob_table_merge_op.cpp b/src/sql/engine/dml/ob_table_merge_op.cpp index 1b3061222e..333c03fcf6 100644 --- a/src/sql/engine/dml/ob_table_merge_op.cpp +++ b/src/sql/engine/dml/ob_table_merge_op.cpp @@ -278,6 +278,9 @@ OB_INLINE int ObTableMergeOp::close_table_for_each() if (OB_NOT_NULL(merge_ctdef.ins_ctdef_)) { const ObInsCtDef &ins_ctdef = *merge_ctdef.ins_ctdef_; ObInsRtDef &ins_rtdef = merge_rtdef.ins_rtdef_; + if (OB_NOT_NULL(ins_rtdef.das_rtdef_.table_loc_)) { + ins_rtdef.das_rtdef_.table_loc_->is_writing_ = false; + } if (OB_FAIL(ObDMLService::process_after_stmt_trigger(ins_ctdef, ins_rtdef, dml_rtctx_, ObDmlEventType::DE_INSERTING))) { LOG_WARN("process after stmt trigger failed", K(ret)); @@ -286,6 +289,9 @@ OB_INLINE int ObTableMergeOp::close_table_for_each() if (OB_SUCC(ret) && OB_NOT_NULL(merge_ctdef.upd_ctdef_)) { const ObUpdCtDef &upd_ctdef = *merge_ctdef.upd_ctdef_; ObUpdRtDef &upd_rtdef = merge_rtdef.upd_rtdef_; + if (OB_NOT_NULL(upd_rtdef.dupd_rtdef_.table_loc_)) { + upd_rtdef.dupd_rtdef_.table_loc_->is_writing_ = false; + } if (OB_FAIL(ObDMLService::process_after_stmt_trigger(upd_ctdef, upd_rtdef, dml_rtctx_, ObDmlEventType::DE_UPDATING))) { LOG_WARN("process after stmt trigger failed", K(ret)); @@ -294,6 +300,9 @@ OB_INLINE int ObTableMergeOp::close_table_for_each() if (OB_SUCC(ret) && OB_NOT_NULL(merge_ctdef.del_ctdef_)) { const ObDelCtDef &del_ctdef = *merge_ctdef.del_ctdef_; ObDelRtDef &del_rtdef = merge_rtdef.del_rtdef_; + if (OB_NOT_NULL(del_rtdef.das_rtdef_.table_loc_)) { + del_rtdef.das_rtdef_.table_loc_->is_writing_ = false; + } if (OB_FAIL(ObDMLService::process_after_stmt_trigger(del_ctdef, del_rtdef, dml_rtctx_, ObDmlEventType::DE_DELETING))) { LOG_WARN("process after stmt trigger failed", K(ret)); diff --git a/src/sql/engine/dml/ob_table_update_op.cpp b/src/sql/engine/dml/ob_table_update_op.cpp index f648fc578a..cfad47ac69 100644 --- a/src/sql/engine/dml/ob_table_update_op.cpp +++ b/src/sql/engine/dml/ob_table_update_op.cpp @@ -255,6 +255,9 @@ OB_INLINE int ObTableUpdateOp::close_table_for_each() if (!upd_rtdefs_.at(i).empty()) { const ObUpdCtDef &primary_upd_ctdef = *MY_SPEC.upd_ctdefs_.at(i).at(0); ObUpdRtDef &primary_upd_rtdef = upd_rtdefs_.at(i).at(0); + if (OB_NOT_NULL(primary_upd_rtdef.dupd_rtdef_.table_loc_)) { + primary_upd_rtdef.dupd_rtdef_.table_loc_->is_writing_ = false; + } if (OB_FAIL(ObDMLService::process_after_stmt_trigger(primary_upd_ctdef, primary_upd_rtdef, dml_rtctx_,