The latter is recommended in seastar, and the former was left as
compatibility alias. Latest seastar explicitly marks it as deprecated so
once the submodule is updated, compilation logs will explode.
Most of the patch is generated with
for f in $(git grep -l '\<distributed<[A-Za-z0-9:_]*>') ; do sed -e 's/\<distributed<\([A-Za-z0-9:_]*\)>/sharded<\1>/g' -i $f; done
for f in $(git grep -l distributed.hh); do sed -e 's/distributed.hh/sharded.hh/' -i $f ; done
and a small manual change in test/perf/perf.hh
Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
Closes scylladb/scylladb#26136
46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
/*
|
|
* Copyright (C) 2015-present ScyllaDB
|
|
*/
|
|
|
|
/*
|
|
* SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <seastar/core/sharded.hh>
|
|
#include "query-result.hh"
|
|
|
|
namespace query {
|
|
|
|
// Merges non-overlapping results into one
|
|
// Implements @Reducer concept from sharded.hh
|
|
class result_merger {
|
|
std::vector<foreign_ptr<lw_shared_ptr<query::result>>> _partial;
|
|
const uint64_t _max_rows;
|
|
const uint32_t _max_partitions;
|
|
public:
|
|
explicit result_merger(uint64_t max_rows, uint32_t max_partitions)
|
|
: _max_rows(max_rows)
|
|
, _max_partitions(max_partitions)
|
|
{ }
|
|
|
|
void reserve(size_t size) {
|
|
_partial.reserve(size);
|
|
}
|
|
|
|
void operator()(foreign_ptr<lw_shared_ptr<query::result>> r) {
|
|
if (!_partial.empty() && _partial.back()->is_short_read()) {
|
|
return;
|
|
}
|
|
_partial.emplace_back(std::move(r));
|
|
}
|
|
|
|
// FIXME: Eventually we should return a composite_query_result here
|
|
// which holds the vector of query results and which can be quickly turned
|
|
// into packet fragments by the transport layer without copying the data.
|
|
foreign_ptr<lw_shared_ptr<query::result>> get();
|
|
};
|
|
|
|
}
|