mirror of https://github.com/tikv/client-go.git
txn: change IsUnnecessaryKeyValue interface to report error for unexpected paths (#390)
* change IsUnnecessaryKeyValue interface to report error for unexpected situations Signed-off-by: cfzjywxk <lsswxrxr@163.com> * update integrated tests go mod Signed-off-by: cfzjywxk <lsswxrxr@163.com> Co-authored-by: disksing <i@disksing.com>
This commit is contained in:
parent
02f89e38ec
commit
e9de5625c4
|
|
@ -20,3 +20,7 @@ replace github.com/tikv/client-go/v2 => ../
|
|||
// cloud.google.com/go/storage will upgrade grpc to v1.40.0
|
||||
// we need keep the replacement until go.etcd.io supports the higher version of grpc.
|
||||
replace google.golang.org/grpc => google.golang.org/grpc v1.29.1
|
||||
|
||||
replace github.com/pingcap/tidb => github.com/cfzjywxk/tidb v1.1.0-beta.0.20211217113134-daf2eab9a70e
|
||||
|
||||
replace github.com/pingcap/tidb/parser => github.com/cfzjywxk/tidb/parser v0.0.0-20211217113134-daf2eab9a70e
|
||||
|
|
|
|||
|
|
@ -104,6 +104,10 @@ github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
|
|||
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
|
||||
github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
|
||||
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
|
||||
github.com/cfzjywxk/tidb v1.1.0-beta.0.20211217113134-daf2eab9a70e h1:EfNWtwd3gBlTNb/5vdbFZMDQGY2FSPh6jS60J7CP3kg=
|
||||
github.com/cfzjywxk/tidb v1.1.0-beta.0.20211217113134-daf2eab9a70e/go.mod h1:+b4BVqUhp8yvrUktaipvWj7EJOaBUd18Hxr+rN/f0tU=
|
||||
github.com/cfzjywxk/tidb/parser v0.0.0-20211217113134-daf2eab9a70e h1:40nYy8MFanA3XOEnwLsLx77nnqoEXq2W/CEUQGiAqsE=
|
||||
github.com/cfzjywxk/tidb/parser v0.0.0-20211217113134-daf2eab9a70e/go.mod h1:ElJiub4lRy6UZDb+0JHDkGEdr6aOli+ykhyej7VCLoI=
|
||||
github.com/cheggaaa/pb/v3 v3.0.8 h1:bC8oemdChbke2FHIIGy9mn4DPJ2caZYQnfbRqwmdCoA=
|
||||
github.com/cheggaaa/pb/v3 v3.0.8/go.mod h1:UICbiLec/XO6Hw6k+BHEtHeQFzzBH4i2/qk/ow1EJTA=
|
||||
github.com/cheynewallace/tabby v1.1.1/go.mod h1:Pba/6cUL8uYqvOc9RkyvFbHGrQ9wShyrn6/S/1OYVys=
|
||||
|
|
@ -577,6 +581,7 @@ github.com/pingcap/log v0.0.0-20210906054005-afc726e70354/go.mod h1:DWQW5jICDR7U
|
|||
github.com/pingcap/sysutil v0.0.0-20210315073920-cc0985d983a3/go.mod h1:tckvA041UWP+NqYzrJ3fMgC/Hw9wnmQ/tUkp/JaHly8=
|
||||
github.com/pingcap/sysutil v0.0.0-20210730114356-fcd8a63f68c5 h1:7rvAtZe/ZUzOKzgriNPQoBNvleJXBk4z7L3Z47+tS98=
|
||||
github.com/pingcap/sysutil v0.0.0-20210730114356-fcd8a63f68c5/go.mod h1:XsOaV712rUk63aOEKYP9PhXTIE3FMNHmC2r1wX5wElY=
|
||||
github.com/pingcap/sysutil v0.0.0-20211208032423-041a72e5860d/go.mod h1:7j18ezaWTao2LHOyMlsc2Dg1vW+mDY9dEbPzVyOlaeM=
|
||||
github.com/pingcap/tidb v1.1.0-beta.0.20211130051352-37e0dac25981 h1:qDBc/5rWnNMVjnrvNd7rHc+EwPryNUQ15uPEGaQgLX0=
|
||||
github.com/pingcap/tidb v1.1.0-beta.0.20211130051352-37e0dac25981/go.mod h1:QV0oFMcfKZzSOK6Z5cKJdeKmYePKKZZo+sqzUvYkPOA=
|
||||
github.com/pingcap/tidb-dashboard v0.0.0-20211008050453-a25c25809529/go.mod h1:OCXbZTBTIMRcIt0jFsuCakZP+goYRv6IjawKbwLS2TQ=
|
||||
|
|
@ -588,6 +593,8 @@ github.com/pingcap/tidb/parser v0.0.0-20211130051352-37e0dac25981 h1:cuJx6z+9q1w
|
|||
github.com/pingcap/tidb/parser v0.0.0-20211130051352-37e0dac25981/go.mod h1:ElJiub4lRy6UZDb+0JHDkGEdr6aOli+ykhyej7VCLoI=
|
||||
github.com/pingcap/tipb v0.0.0-20211116093845-e9b045a0bdf8 h1:Vu/6oq8EFNWgyXRHiclNzTKIu+YKHPCSI/Ba5oVrLtM=
|
||||
github.com/pingcap/tipb v0.0.0-20211116093845-e9b045a0bdf8/go.mod h1:A7mrd7WHBl1o63LE2bIBGEJMTNWXqhgmYiOvMLxozfs=
|
||||
github.com/pingcap/tipb v0.0.0-20211201080053-bd104bb270ba h1:Tt5W/maVBUbG+wxg2nfc88Cqj/HiWYb0TJQ2Rfi0UOQ=
|
||||
github.com/pingcap/tipb v0.0.0-20211201080053-bd104bb270ba/go.mod h1:A7mrd7WHBl1o63LE2bIBGEJMTNWXqhgmYiOvMLxozfs=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
|
|
@ -641,6 +648,8 @@ github.com/sergi/go-diff v1.0.1-0.20180205163309-da645544ed44/go.mod h1:0CfEIISq
|
|||
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
||||
github.com/shirou/gopsutil v3.21.2+incompatible h1:U+YvJfjCh6MslYlIAXvPtzhW3YZEtc9uncueUNpD/0A=
|
||||
github.com/shirou/gopsutil v3.21.2+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
|
||||
github.com/shirou/gopsutil v3.21.3+incompatible h1:uenXGGa8ESCQq+dbgtl916dmg6PSAz2cXov0uORQ9v8=
|
||||
github.com/shirou/gopsutil v3.21.3+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
|
||||
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
|
||||
github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg=
|
||||
github.com/shurcooL/httpgzip v0.0.0-20190720172056-320755c1c1b0/go.mod h1:919LwcH0M7/W4fcZ0/jy0qGght1GIhqyS/EgWGH2j5Q=
|
||||
|
|
|
|||
|
|
@ -381,7 +381,7 @@ func (c *twoPhaseCommitter) extractKeyExistsErr(err *tikverr.ErrKeyExist) error
|
|||
// KVFilter is a filter that filters out unnecessary KV pairs.
|
||||
type KVFilter interface {
|
||||
// IsUnnecessaryKeyValue returns whether this KV pair should be committed.
|
||||
IsUnnecessaryKeyValue(key, value []byte, flags kv.KeyFlags) bool
|
||||
IsUnnecessaryKeyValue(key, value []byte, flags kv.KeyFlags) (bool, error)
|
||||
}
|
||||
|
||||
func (c *twoPhaseCommitter) initKeysAndMutations() error {
|
||||
|
|
@ -410,7 +410,13 @@ func (c *twoPhaseCommitter) initKeysAndMutations() error {
|
|||
lockCnt++
|
||||
} else {
|
||||
value = it.Value()
|
||||
isUnnecessaryKV := filter != nil && filter.IsUnnecessaryKeyValue(key, value, flags)
|
||||
var isUnnecessaryKV bool
|
||||
if filter != nil {
|
||||
isUnnecessaryKV, err = filter.IsUnnecessaryKeyValue(key, value, flags)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
if len(value) > 0 {
|
||||
if isUnnecessaryKV {
|
||||
if !flags.HasLocked() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue