Fetch the repository succeeded.
/*
* Copyright (C) 2015-present ScyllaDB
*/
/*
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#pragma once
#include <seastar/core/distributed.hh>
#include "query-result.hh"
namespace query {
// Merges non-overlapping results into one
// Implements @Reducer concept from distributed.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();
};
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。