Browse Source

namespace: prefix comparison range_end

Anthony Romano 8 years ago
parent
commit
7ff6e62c56
1 changed files with 4 additions and 1 deletions
  1. 4 1
      clientv3/namespace/kv.go

+ 4 - 1
clientv3/namespace/kv.go

@@ -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