Tomislav Novak ec70fea4c4 Fix a comparison in DBIter::FindPrevUserKey()
Summary:
When seek target is a merge key (`kTypeMerge`), `DBIter::FindNextUserEntry()`
advances the underlying iterator _past_ the current key (`saved_key_`); see
`MergeValuesNewToOld()`. However, `FindPrevUserKey()` assumes that `iter_`
points to an entry with the same user key as `saved_key_`. As a result,
`it->Seek(key) && it->Prev()` can cause the iterator to be positioned at the
_next_, instead of the previous, entry (new test, written by @lovro, reproduces
the bug).

This diff changes `FindPrevUserKey()` to also skip keys that are _greater_ than
`saved_key_`.

Test Plan: db_test

Reviewers: igor, sdong

Reviewed By: sdong

Subscribers: leveldb, dhruba, lovro

Differential Revision: https://reviews.facebook.net/D40791
2015-06-29 17:04:03 -07:00
..
2015-06-17 10:54:51 -07:00
2015-06-17 14:36:14 -07:00
2015-05-05 09:57:47 -07:00
2015-04-25 18:14:27 +09:00
2015-06-23 10:25:45 -07:00
2015-06-25 14:43:25 -07:00
2015-03-17 14:08:00 -07:00
2015-05-29 14:36:35 -07:00
2015-04-23 12:10:36 -07:00
2015-03-17 14:08:00 -07:00
2015-05-29 14:36:35 -07:00
2015-01-26 11:48:07 -08:00
2015-04-07 16:25:56 -07:00
2015-04-27 20:23:50 -07:00
2015-03-30 16:05:35 -04:00
2015-03-17 14:08:00 -07:00
2014-11-06 11:14:28 -08:00
2015-02-06 08:44:30 -08:00
2014-10-31 11:59:54 -07:00
2015-02-26 11:28:41 -08:00
2014-11-10 17:39:38 -05:00
2015-05-29 14:36:35 -07:00
2015-05-29 14:36:35 -07:00
2015-05-29 14:36:35 -07:00