Skip to content

Commit

Permalink
address comments from unsaved fast iterator PR
Browse files Browse the repository at this point in the history
  • Loading branch information
p0mvn committed Feb 13, 2022
1 parent cbfd88a commit b0ea918
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions unsaved_fast_iterator.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ func (iter *UnsavedFastIterator) Valid() bool {
}
}

return iter.fastIterator.Valid() || iter.nextUnsavedNodeIdx < len(iter.unsavedFastNodesToSort) || iter.nextKey != nil || iter.nextVal != nil
return iter.fastIterator.Valid() || iter.nextUnsavedNodeIdx < len(iter.unsavedFastNodesToSort) || (iter.nextKey != nil && iter.nextVal != nil)
}

// Key implements dbm.Iterator
Expand All @@ -137,6 +137,8 @@ func (iter *UnsavedFastIterator) Value() []byte {
}

// Next implements dbm.Iterator
// Its effectively running the constant space overhead algorithm for streaming through sorted lists:
// the sorted lists being underlying fast nodes & unsavedFastNodeChanges
func (iter *UnsavedFastIterator) Next() {
if iter.ndb == nil {
iter.err = errFastIteratorNilNdbGiven
Expand All @@ -159,9 +161,9 @@ func (iter *UnsavedFastIterator) Next() {

var isUnsavedNext bool
if iter.ascending {
isUnsavedNext = bytes.Compare([]byte(diskKeyStr), []byte(nextUnsavedKey)) >= 0
isUnsavedNext = diskKeyStr >= nextUnsavedKey
} else {
isUnsavedNext = bytes.Compare([]byte(diskKeyStr), []byte(nextUnsavedKey)) <= 0
isUnsavedNext = diskKeyStr <= nextUnsavedKey
}

if isUnsavedNext {
Expand Down

0 comments on commit b0ea918

Please sign in to comment.