Просмотр исходного кода

storage: let range work in the process of txn

range should work in the process of txn to help check the status during the
txn.
Yicheng Qin 10 лет назад
Родитель
Сommit
9960651c3f
1 измененных файлов с 7 добавлено и 5 удалено
  1. 7 5
      storage/kvstore.go

+ 7 - 5
storage/kvstore.go

@@ -259,14 +259,16 @@ func (a *store) Equal(b *store) bool {
 
 // range is a keyword in Go, add Keys suffix.
 func (s *store) rangeKeys(key, end []byte, limit, rangeRev int64) (kvs []storagepb.KeyValue, rev int64, err error) {
-	if rangeRev > s.currentRev.main {
+	curRev := int64(s.currentRev.main)
+	if s.currentRev.sub > 0 {
+		curRev += 1
+	}
+
+	if rangeRev > curRev {
 		return nil, s.currentRev.main, ErrFutureRev
 	}
 	if rangeRev <= 0 {
-		rev = int64(s.currentRev.main)
-		if s.currentRev.sub > 0 {
-			rev += 1
-		}
+		rev = curRev
 	} else {
 		rev = rangeRev
 	}