diff --git a/database.cc b/database.cc index 9209f7d755..14a9107bae 100644 --- a/database.cc +++ b/database.cc @@ -4597,11 +4597,14 @@ flat_mutation_reader make_local_shard_sstable_reader(schema_ptr s, } return reader; }; - return make_combined_reader(s, std::make_unique(s, - std::move(sstables), - pr, - std::move(trace_state), - std::move(reader_factory_fn)), + auto all_readers = boost::copy_range>( + *sstables->all() + | boost::adaptors::transformed([&] (sstables::shared_sstable sst) -> flat_mutation_reader { + return reader_factory_fn(sst, pr); + }) + ); + return make_combined_reader(s, + std::move(all_readers), fwd, fwd_mr); } @@ -4620,11 +4623,14 @@ flat_mutation_reader make_range_sstable_reader(schema_ptr s, auto reader_factory_fn = [s, &slice, &pc, resource_tracker, fwd, fwd_mr, &monitor_generator] (sstables::shared_sstable& sst, const dht::partition_range& pr) { return sst->read_range_rows_flat(s, pr, slice, pc, resource_tracker, fwd, fwd_mr, monitor_generator(sst)); }; - return make_combined_reader(s, std::make_unique(s, - std::move(sstables), - pr, - std::move(trace_state), - std::move(reader_factory_fn)), + auto sstable_readers = boost::copy_range>( + *sstables->all() + | boost::adaptors::transformed([&] (sstables::shared_sstable sst) { + return reader_factory_fn(sst, pr); + }) + ); + return make_combined_reader(s, + std::move(sstable_readers), fwd, fwd_mr); }