sstables/writer: add an accessor for the current write position in Data.db

It will be used by index tests to know the ground truth for
where each partition and row are written, so that this can
be checked against the index.
This commit is contained in:
Michał Chojnowski
2025-09-04 14:29:25 +02:00
parent 11a5eec272
commit 94088f0a41
4 changed files with 11 additions and 0 deletions

View File

@@ -816,6 +816,7 @@ public:
stop_iteration consume(range_tombstone_change&& rtc) override;
stop_iteration consume_end_of_partition() override;
void consume_end_of_stream() override;
uint64_t data_file_position_for_tests() const override;
};
writer::~writer() {
@@ -1545,6 +1546,10 @@ void writer::consume_end_of_stream() {
_sst.seal_sstable(_cfg.backup).get();
}
uint64_t writer::data_file_position_for_tests() const {
return _data_writer->offset();
}
std::unique_ptr<sstable_writer::writer_impl> make_writer(sstable& sst,
const schema& s,
uint64_t estimated_partitions,

View File

@@ -44,6 +44,7 @@ public:
stop_iteration consume_end_of_partition();
void consume_end_of_stream();
void set_repaired_at(int64_t repaired_at);
uint64_t data_file_position_for_tests() const;
};
} // namespace sstables

View File

@@ -77,6 +77,10 @@ void sstable_writer::set_repaired_at(int64_t repaired_at) {
_impl->set_repaired_at(repaired_at);
}
uint64_t sstable_writer::data_file_position_for_tests() const {
return _impl->data_file_position_for_tests();
}
sstable_writer::sstable_writer(sstable_writer&& o) = default;
sstable_writer& sstable_writer::operator=(sstable_writer&& o) = default;
sstable_writer::~sstable_writer() {

View File

@@ -52,6 +52,7 @@ struct sstable_writer::writer_impl {
void set_repaired_at(uint64_t repaired_at) {
_collector.set_repaired_at(repaired_at);
}
virtual uint64_t data_file_position_for_tests() const = 0;
};
}