limbo/core/mvcc
Jussi Saurio eb782ce2d4 fix/mvcc: seek() must seek from both mv store and btree
for example, upon opening an existing database, all the rows are in
the btree, so if we seek only from MV store, we won't find anything.
ergo: we must look from both the mv store and the btree. if we are
iterating forwards, the smallest of the two results is where we land,
and vice versa for backwards iteration.

initially this implementation used blocking IO but was refactored to
use state machines after the rest of the Cursor methods in the MVCC cursor
module were refactored to do that too.

---

this PR was initially almost entirely written using Claude Code + Opus 4.5,
but heavily manually cleaned up as the AI made the state machine refactor
far too complicated.
2025-12-05 11:53:16 +02:00
..
database core/mvcc: test seek after checkpoint 2025-12-04 19:31:41 +01:00
persistent_storage Merge 'Mvcc bugfixes' from Jussi Saurio 2025-12-03 12:55:58 +02:00
clock.rs core/mvcc: Move source code to module 2025-02-05 13:25:16 +02:00
cursor.rs fix/mvcc: seek() must seek from both mv store and btree 2025-12-05 11:53:16 +02:00
mod.rs use ArcSwap to store MvStore 2025-12-03 10:09:04 -03:00