Index: impl/memory/gkvlite_iter.go |
diff --git a/impl/memory/gkvlite_iter.go b/impl/memory/gkvlite_iter.go |
index cf407970920d016aafbf7b75367f6dd9e83d7c95..e3620267cdb33c834edd93d3f34c4a0723ab0bb8 100644 |
--- a/impl/memory/gkvlite_iter.go |
+++ b/impl/memory/gkvlite_iter.go |
@@ -66,18 +66,21 @@ func multiIterate(defs []*iterDefinition, cb func(suffix []byte) bool) { |
panic("got nil prefix") |
} |
- end := []byte(nil) |
- if def.end != nil { |
- end = bjoin(def.prefix, def.end) |
- } else { |
- end = []byte(increment(string(def.prefix), true)) |
- } |
- |
+ // start at the prefix, plus any defined start suffix |
start := def.prefix |
if def.start != nil { |
start = bjoin(def.prefix, def.start) |
} |
+ // end at the prefix+1 (if there was a defined prefix), plus any defined |
+ // start suffix. |
+ end := []byte(nil) |
+ if def.end != nil { |
+ end = bjoin(def.prefix, def.end) |
+ } else if def.prefix != nil { |
+ end = increment(def.prefix) |
+ } |
+ |
ts[i] = newIterator(def.c, start, end) |
prefixLens[i] = len(def.prefix) |
defer ts[i].stop() |