txn: remove `IsTempIndexKey` which bypass the checks for temp index keys (#1778)

Signed-off-by: you06 <you1474600@gmail.com>
This commit is contained in:
you06 2025-10-29 22:04:34 +09:00 committed by GitHub
parent b7d4dfd852
commit 108d20a439
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 2 additions and 12 deletions

View File

@ -1091,10 +1091,3 @@ type SchemaVer = transaction.SchemaVer
// MaxTxnTimeUse is the max time a Txn may use (in ms) from its begin to commit. // MaxTxnTimeUse is the max time a Txn may use (in ms) from its begin to commit.
// We use it to abort the transaction to guarantee GC worker will not influence it. // We use it to abort the transaction to guarantee GC worker will not influence it.
const MaxTxnTimeUse = transaction.MaxTxnTimeUse const MaxTxnTimeUse = transaction.MaxTxnTimeUse
// SetIsTempIndexKey inject the function to check whether a key is a temporary index key.
// Call this function before using this package.
// If not set, all keys will be treated as non-temporary index keys.
func SetIsTempIndexKey(fn func([]byte) bool) {
transaction.IsTempIndexKey = fn
}

View File

@ -102,9 +102,8 @@ func (c *twoPhaseCommitter) buildPrewriteRequest(batch batchMutations, txnSize u
} }
if m.IsPessimisticLock(i) { if m.IsPessimisticLock(i) {
pessimisticActions[i] = kvrpcpb.PrewriteRequest_DO_PESSIMISTIC_CHECK pessimisticActions[i] = kvrpcpb.PrewriteRequest_DO_PESSIMISTIC_CHECK
} else if m.NeedConstraintCheckInPrewrite(i) || } else if m.NeedConstraintCheckInPrewrite(i) || config.NextGen {
(config.NextGen && IsTempIndexKey != nil && !IsTempIndexKey(m.GetKey(i))) { // For next-gen builds, we need to perform constraint checks on all non-locked keys.
// For next-gen builds, we need to perform constraint checks on all non-temporary index keys.
// This is to prevent scenarios where a later lock's start_ts is smaller than the previous write's commit_ts, // This is to prevent scenarios where a later lock's start_ts is smaller than the previous write's commit_ts,
// which can be problematic for CDC and could potentially break correctness. // which can be problematic for CDC and could potentially break correctness.
// see https://github.com/tikv/tikv/issues/11187. // see https://github.com/tikv/tikv/issues/11187.
@ -630,5 +629,3 @@ func (handler *prewrite1BatchReqHandler) handleSingleBatchSucceed(reqBegin time.
} }
return nil return nil
} }
var IsTempIndexKey func([]byte) bool