From 298954f2694d8315d980dd5896a46861b257d542 Mon Sep 17 00:00:00 2001 From: Shuaipeng Yu Date: Mon, 16 Dec 2019 10:59:10 +0800 Subject: [PATCH] mocktikv: add the missing ConflictCommitTS Signed-off-by: Shuaipeng Yu --- store/mockstore/mocktikv/errors.go | 7 ++++--- store/mockstore/mocktikv/mvcc_leveldb.go | 7 ++++--- store/mockstore/mocktikv/rpc.go | 7 ++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/store/mockstore/mocktikv/errors.go b/store/mockstore/mocktikv/errors.go index 54e1e4b8720f0..2a5ed12ccf150 100644 --- a/store/mockstore/mocktikv/errors.go +++ b/store/mockstore/mocktikv/errors.go @@ -69,9 +69,10 @@ func (e ErrAlreadyCommitted) Error() string { // ErrConflict is returned when the commitTS of key in the DB is greater than startTS. type ErrConflict struct { - StartTS uint64 - ConflictTS uint64 - Key []byte + StartTS uint64 + ConflictTS uint64 + ConflictCommitTS uint64 + Key []byte } func (e *ErrConflict) Error() string { diff --git a/store/mockstore/mocktikv/mvcc_leveldb.go b/store/mockstore/mocktikv/mvcc_leveldb.go index 91fc46275dcb4..2de5b494827fe 100644 --- a/store/mockstore/mocktikv/mvcc_leveldb.go +++ b/store/mockstore/mocktikv/mvcc_leveldb.go @@ -686,9 +686,10 @@ func checkConflictValue(iter *Iterator, m *kvrpcpb.Mutation, startTS uint64) err // Note that it's a write conflict here, even if the value is a rollback one. if dec.value.commitTS >= startTS { return &ErrConflict{ - StartTS: startTS, - ConflictTS: dec.value.commitTS, - Key: m.Key, + StartTS: startTS, + ConflictTS: dec.value.startTS, + ConflictCommitTS: dec.value.commitTS, + Key: m.Key, } } if m.Op == kvrpcpb.Op_PessimisticLock && m.Assertion == kvrpcpb.Assertion_NotExist { diff --git a/store/mockstore/mocktikv/rpc.go b/store/mockstore/mocktikv/rpc.go index 8d2a4e6dca0bb..32dff89fd0427 100755 --- a/store/mockstore/mocktikv/rpc.go +++ b/store/mockstore/mocktikv/rpc.go @@ -73,9 +73,10 @@ func convertToKeyError(err error) *kvrpcpb.KeyError { if writeConflict, ok := errors.Cause(err).(*ErrConflict); ok { return &kvrpcpb.KeyError{ Conflict: &kvrpcpb.WriteConflict{ - Key: writeConflict.Key, - ConflictTs: writeConflict.ConflictTS, - StartTs: writeConflict.StartTS, + Key: writeConflict.Key, + ConflictTs: writeConflict.ConflictTS, + ConflictCommitTs: writeConflict.ConflictCommitTS, + StartTs: writeConflict.StartTS, }, } }