@@ -55,11 +55,11 @@ class MvccUpdateExecutor : public AbstractExecutor {
5555 auto &rid_ = prev_->rid ();
5656 auto link = txn_manager.GetUndoLink (fh_->GetFd (), rid_);
5757
58- // if (!lock_manager.lock_exclusive_on_record(context_->txn_, rid_, fh_->GetFd())) {
59- // txn_manager.abort(context_);
60- // lock_manager.wait_for_lock_release(LockDataId(fh_->GetFd(), rid_));
61- // throw TransactionAbortException(context_->txn_->get_transaction_id(), AbortReason::UPGRADE_CONFLICT);
62- // }
58+ if (!lock_manager.lock_exclusive_on_record (context_->txn_ , rid_, fh_->GetFd ())) {
59+ txn_manager.abort (context_);
60+ lock_manager.wait_for_lock_release (LockDataId (fh_->GetFd (), rid_));
61+ throw TransactionAbortException (context_->txn_ ->get_transaction_id (), AbortReason::UPGRADE_CONFLICT);
62+ }
6363
6464 if (IsWriteWriteConflict (context_->txn_ , link)) {
6565 throw TransactionAbortException (context_->txn_ ->get_transaction_id (), AbortReason::UPGRADE_CONFLICT);
@@ -138,11 +138,11 @@ class MvccUpdateExecutor : public AbstractExecutor {
138138 // ! 这里使用back在唯一索引下才是对的
139139 insert_rid = rids.back ();
140140
141- // if (!lock_manager.lock_exclusive_on_record(context_->txn_, insert_rid, fh_->GetFd())) {
142- // txn_manager.abort(context_);
143- // lock_manager.wait_for_lock_release(LockDataId(fh_->GetFd(), insert_rid));
144- // throw TransactionAbortException(context_->txn_->get_transaction_id(), AbortReason::UPGRADE_CONFLICT);
145- // }
141+ if (!lock_manager.lock_exclusive_on_record (context_->txn_ , insert_rid, fh_->GetFd ())) {
142+ txn_manager.abort (context_);
143+ lock_manager.wait_for_lock_release (LockDataId (fh_->GetFd (), insert_rid));
144+ throw TransactionAbortException (context_->txn_ ->get_transaction_id (), AbortReason::UPGRADE_CONFLICT);
145+ }
146146
147147 if (!txn_manager.AtomicUpdate (tab_.name , fh_, rid_, delete_meta, old_rec, insert_rid, insert_old_meta, nullptr ,
148148 insert_new_meta, new_rec, context_->txn_ )) {
@@ -151,11 +151,11 @@ class MvccUpdateExecutor : public AbstractExecutor {
151151 }
152152 } else {
153153 insert_rid = fh_->GetNewRid ();
154- // if (!lock_manager.lock_exclusive_on_record(context_->txn_, insert_rid, fh_->GetFd())) {
155- // txn_manager.abort(context_);
156- // lock_manager.wait_for_lock_release(LockDataId(fh_->GetFd(), insert_rid));
157- // throw TransactionAbortException(context_->txn_->get_transaction_id(), AbortReason::UPGRADE_CONFLICT);
158- // }
154+ if (!lock_manager.lock_exclusive_on_record (context_->txn_ , insert_rid, fh_->GetFd ())) {
155+ txn_manager.abort (context_);
156+ lock_manager.wait_for_lock_release (LockDataId (fh_->GetFd (), insert_rid));
157+ throw TransactionAbortException (context_->txn_ ->get_transaction_id (), AbortReason::UPGRADE_CONFLICT);
158+ }
159159 if (!txn_manager.AtomicUpdate (tab_.name , fh_, rid_, delete_meta, old_rec, insert_rid, insert_old_meta,
160160 nullptr , insert_new_meta, new_rec, context_->txn_ )) {
161161 fh_->delete_record (insert_rid);
0 commit comments