mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-27 03:45:11 +00:00
This PR consists of two changes. The first fixes the flat_mutation_reader and flat_mutation_reader_v2, so that they can be destructed without being closed (if no action has been initiated). This has been discussed in the referenced issue. The second one changes scanning and flush readers so that they implement the second version of the API. It also contains unit test fixes, dealing with flat mutation reader assertions (where the v1 asserter failed to consume range tombstones intelligently enough in some flows) and several sstable_3_x tests (where sstables that contain range tombstones were expected to be byte-by-byte equivalent to a reference, aside from semantic validation). Fixes #9065. Closes #9669 * github.com:scylladb/scylla: flat_reader_assertions: do not accumulate out-of-range tombstones flat_reader_assertions: refactor resetting accumulated tombstone lists flat_mutation_reader_test: fix "test_flat_mutation_reader_consume_single_partition" memtable::make_flush_reader(): return flat_mutation_reader_v2 memtable::make_flat_reader(): return flat_mutation_reader_v2 flat_mutation_reader_v2: add consume_partitions() introduce the MutationConsumer concept mutation_source: clone shortcut constructors for flat_mutation_reader_v2 flat_mutation_reader_v2: add delegating_reader_v2 memtable: upgrade scanning_reader and flush_reader to v2 flat_mutation_reader: allow destructing readers which are not closed and didn't initiate any IO. tests: stop comparing sstables with range tombstones to C* reference tests: flat_reader_assertions: improve range tombstone checking