namespace: prefix comparison range_end
@@ -105,8 +105,11 @@ func (txn *txnPrefix) If(cs ...clientv3.Cmp) clientv3.Txn {
newCmps := make([]clientv3.Cmp, len(cs))
for i := range cs {
newCmps[i] = cs[i]
- pfxKey, _ := txn.kv.prefixInterval(cs[i].KeyBytes(), nil)
+ pfxKey, endKey := txn.kv.prefixInterval(cs[i].KeyBytes(), cs[i].RangeEnd)
newCmps[i].WithKeyBytes(pfxKey)
+ if len(cs[i].RangeEnd) != 0 {
+ newCmps[i].RangeEnd = endKey
+ }
}
txn.Txn = txn.Txn.If(newCmps...)
return txn
