[to #51089750]after stmt trigger not throw mutating table error
This commit is contained in:
@ -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_,
|
||||
|
||||
@ -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_,
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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_,
|
||||
|
||||
Reference in New Issue
Block a user