From 7d67d89a9c8baef32f5ba1f05954138df6e83c65 Mon Sep 17 00:00:00 2001 From: Steve Yen Date: Tue, 1 Mar 2016 21:32:11 -0800 Subject: [PATCH] MB-18441 - moss lower-level iterator starts positioned on current The iterator starts off positioned so that Current() is correct, so invoking Next() right off the bat was incorrect. --- index/store/moss/lower.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index/store/moss/lower.go b/index/store/moss/lower.go index 52049f36..8405e794 100644 --- a/index/store/moss/lower.go +++ b/index/store/moss/lower.go @@ -187,14 +187,6 @@ func (s *llStore) update(ssHigher moss.Snapshot, maxBatchSize uint64) ( s.logf("llStore.update, i: %d", i) } - err = iter.Next() - if err == moss.ErrIteratorDone { - break - } - if err != nil { - return nil, err - } - ex, key, val, err := iter.CurrentEx() if err == moss.ErrIteratorDone { break @@ -227,6 +219,14 @@ func (s *llStore) update(ssHigher moss.Snapshot, maxBatchSize uint64) ( " unexpected operation, ex: %v", ex) } + err = iter.Next() + if err == moss.ErrIteratorDone { + break + } + if err != nil { + return nil, err + } + if maxBatchSize > 0 && i%maxBatchSize == 0 { err = kvWriter.ExecuteBatch(batch) if err != nil {