mirror of
https://github.com/scylladb/scylladb.git
synced 2026-06-07 15:33:15 +00:00
Pass serialization_header to data_consume_rows_context*
This header is needed to parse data for SSTable 3.0 format Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com>
This commit is contained in:
@@ -77,10 +77,10 @@ class data_consume_context {
|
||||
shared_sstable _sst;
|
||||
std::unique_ptr<DataConsumeRowsContext> _ctx;
|
||||
|
||||
// This object can only be constructed by sstable::data_consume_rows()
|
||||
template <typename Consumer>
|
||||
data_consume_context(shared_sstable sst, Consumer &consumer, input_stream<char> &&input, uint64_t start, uint64_t maxlen)
|
||||
: _sst(std::move(sst)), _ctx(new DataConsumeRowsContext(consumer, std::move(input), start, maxlen))
|
||||
: _sst(std::move(sst))
|
||||
, _ctx(new DataConsumeRowsContext(_sst, consumer, std::move(input), start, maxlen))
|
||||
{ }
|
||||
|
||||
friend class sstable;
|
||||
|
||||
@@ -27,9 +27,10 @@ namespace sstables {
|
||||
|
||||
future<> sstable::data_consume_rows_at_once(row_consumer& consumer,
|
||||
uint64_t start, uint64_t end) {
|
||||
return data_read(start, end - start, consumer.io_priority()).then([&consumer]
|
||||
return data_read(start, end - start, consumer.io_priority()).then([this, &consumer]
|
||||
(temporary_buffer<char> buf) {
|
||||
data_consume_rows_context ctx(consumer, input_stream<char>(), 0, -1);
|
||||
shared_sstable sst = shared_from_this();
|
||||
data_consume_rows_context ctx(sst, consumer, input_stream<char>(), 0, -1);
|
||||
ctx.process(buf);
|
||||
ctx.verify_end_state();
|
||||
});
|
||||
|
||||
@@ -453,8 +453,9 @@ public:
|
||||
return row_consumer::proceed::yes;
|
||||
}
|
||||
|
||||
data_consume_rows_context(row_consumer& consumer,
|
||||
input_stream<char> && input, uint64_t start, uint64_t maxlen)
|
||||
data_consume_rows_context(const shared_sstable&,
|
||||
row_consumer& consumer,
|
||||
input_stream<char>&& input, uint64_t start, uint64_t maxlen)
|
||||
: continuous_data_consumer(std::move(input), start, maxlen)
|
||||
, _consumer(consumer) {
|
||||
}
|
||||
@@ -514,6 +515,7 @@ private:
|
||||
} _state = state::PARTITION_START;
|
||||
|
||||
consumer_m& _consumer;
|
||||
const serialization_header& _header;
|
||||
|
||||
temporary_buffer<char> _pk;
|
||||
|
||||
@@ -676,8 +678,14 @@ public:
|
||||
return row_consumer::proceed::yes;
|
||||
}
|
||||
|
||||
data_consume_rows_context_m(consumer_m& consumer, input_stream<char> && input, uint64_t start, uint64_t maxlen)
|
||||
: continuous_data_consumer(std::move(input), start, maxlen), _consumer(consumer)
|
||||
data_consume_rows_context_m(const shared_sstable& sst,
|
||||
consumer_m& consumer,
|
||||
input_stream<char> && input,
|
||||
uint64_t start,
|
||||
uint64_t maxlen)
|
||||
: continuous_data_consumer(std::move(input), start, maxlen)
|
||||
, _consumer(consumer)
|
||||
, _header(sst->get_serialization_header())
|
||||
{ }
|
||||
|
||||
void verify_end_state() {
|
||||
|
||||
Reference in New Issue
Block a user