| 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()
|
|
|