mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-12 19:02:12 +00:00
mutation/mutation_partition_view: accept collection_mutation in the consume API
Instead of collection_mutation_view. Follow-suit of the atomic_cell overloads, which already accept a value, to allow for caller to move the value along. The current interface forces collections to be copied.
This commit is contained in:
@@ -113,10 +113,10 @@ auto fmt::formatter<canonical_mutation>::format(const canonical_mutation& cm, fm
|
||||
auto&& entry = _cm.static_column_at(id);
|
||||
_os = fmt::format_to(_os, "static column {} {}", bytes_to_text(entry.name()), atomic_cell::printer(*entry.type(), ac));
|
||||
}
|
||||
virtual void accept_static_cell(column_id id, collection_mutation_view cmv) override {
|
||||
virtual void accept_static_cell(column_id id, collection_mutation cm) override {
|
||||
print_separator();
|
||||
auto&& entry = _cm.static_column_at(id);
|
||||
_os = fmt::format_to(_os, "static column {} {}", bytes_to_text(entry.name()), collection_mutation_view::printer(*entry.type(), cmv));
|
||||
_os = fmt::format_to(_os, "static column {} {}", bytes_to_text(entry.name()), collection_mutation_view::printer(*entry.type(), cm));
|
||||
}
|
||||
virtual stop_iteration accept_row_tombstone(range_tombstone rt) override {
|
||||
print_separator();
|
||||
@@ -137,10 +137,10 @@ auto fmt::formatter<canonical_mutation>::format(const canonical_mutation& cm, fm
|
||||
auto&& entry = _cm.regular_column_at(id);
|
||||
_os = fmt::format_to(_os, "column {} {}", bytes_to_text(entry.name()), atomic_cell::printer(*entry.type(), ac));
|
||||
}
|
||||
virtual void accept_row_cell(column_id id, collection_mutation_view cmv) override {
|
||||
virtual void accept_row_cell(column_id id, collection_mutation cm) override {
|
||||
print_separator();
|
||||
auto&& entry = _cm.regular_column_at(id);
|
||||
_os = fmt::format_to(_os, "column {} {}", bytes_to_text(entry.name()), collection_mutation_view::printer(*entry.type(), cmv));
|
||||
_os = fmt::format_to(_os, "column {} {}", bytes_to_text(entry.name()), collection_mutation_view::printer(*entry.type(), cm));
|
||||
}
|
||||
out_t finalize() {
|
||||
if (_in_row) {
|
||||
|
||||
@@ -97,9 +97,9 @@ public:
|
||||
r.append_cell(id, atomic_cell_or_collection(std::move(cell)));
|
||||
}
|
||||
|
||||
virtual void accept_static_cell(column_id id, collection_mutation_view collection) override {
|
||||
virtual void accept_static_cell(column_id id, collection_mutation collection) override {
|
||||
row& r = _static_row.maybe_create();
|
||||
r.append_cell(id, collection_mutation(*_schema.static_column_at(id).type, std::move(collection)));
|
||||
r.append_cell(id, std::move(collection));
|
||||
}
|
||||
|
||||
virtual stop_iteration accept_row_tombstone(range_tombstone rt) override {
|
||||
@@ -125,9 +125,9 @@ public:
|
||||
r.append_cell(id, std::move(cell));
|
||||
}
|
||||
|
||||
virtual void accept_row_cell(column_id id, collection_mutation_view collection) override {
|
||||
virtual void accept_row_cell(column_id id, collection_mutation collection) override {
|
||||
row& r = _current_row->cells();
|
||||
r.append_cell(id, collection_mutation(*_schema.regular_column_at(id).type, std::move(collection)));
|
||||
r.append_cell(id, std::move(collection));
|
||||
}
|
||||
|
||||
auto on_end_of_partition() {
|
||||
|
||||
@@ -23,31 +23,31 @@ class converting_mutation_partition_applier;
|
||||
|
||||
template<typename T>
|
||||
concept MutationViewVisitor = requires (T& visitor, tombstone t, atomic_cell ac,
|
||||
collection_mutation_view cmv, range_tombstone rt,
|
||||
collection_mutation cm, range_tombstone rt,
|
||||
position_in_partition_view pipv, row_tombstone row_tomb,
|
||||
row_marker rm) {
|
||||
visitor.accept_partition_tombstone(t);
|
||||
visitor.accept_static_cell(column_id(), std::move(ac));
|
||||
visitor.accept_static_cell(column_id(), cmv);
|
||||
visitor.accept_static_cell(column_id(), std::move(cm));
|
||||
visitor.accept_row_tombstone(rt);
|
||||
visitor.accept_row(pipv, row_tomb, rm,
|
||||
is_dummy::no, is_continuous::yes);
|
||||
visitor.accept_row_cell(column_id(), std::move(ac));
|
||||
visitor.accept_row_cell(column_id(), cmv);
|
||||
visitor.accept_row_cell(column_id(), std::move(cm));
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
concept AsyncMutationViewVisitor = requires (T& visitor, tombstone t, atomic_cell ac,
|
||||
collection_mutation_view cmv, range_tombstone rt,
|
||||
collection_mutation cm, range_tombstone rt,
|
||||
position_in_partition_view pipv, row_tombstone row_tomb,
|
||||
row_marker rm) {
|
||||
{ visitor.accept_partition_tombstone(t) } -> std::same_as<void>;
|
||||
{ visitor.accept_static_cell(column_id(), std::move(ac)) } -> std::same_as<void>;
|
||||
{ visitor.accept_static_cell(column_id(), cmv) } -> std::same_as<void>;
|
||||
{ visitor.accept_static_cell(column_id(), std::move(cm)) } -> std::same_as<void>;
|
||||
{ visitor.accept_row_tombstone(rt) } -> std::same_as<future<>>;
|
||||
{ visitor.accept_row(pipv, row_tomb, rm, is_dummy::no, is_continuous::yes) } -> std::same_as<future<>>;
|
||||
{ visitor.accept_row_cell(column_id(), std::move(ac)) } -> std::same_as<void>;
|
||||
{ visitor.accept_row_cell(column_id(), cmv) } -> std::same_as<void>;
|
||||
{ visitor.accept_row_cell(column_id(), std::move(cm)) } -> std::same_as<void>;
|
||||
{ visitor.accept_end_of_partition() } -> std::same_as<future<>>;
|
||||
};
|
||||
|
||||
@@ -56,11 +56,11 @@ public:
|
||||
virtual ~mutation_partition_view_virtual_visitor();
|
||||
virtual void accept_partition_tombstone(tombstone t) = 0;
|
||||
virtual void accept_static_cell(column_id, atomic_cell ac) = 0;
|
||||
virtual void accept_static_cell(column_id, collection_mutation_view cmv) = 0;
|
||||
virtual void accept_static_cell(column_id, collection_mutation cm) = 0;
|
||||
virtual stop_iteration accept_row_tombstone(range_tombstone rt) = 0;
|
||||
virtual stop_iteration accept_row(position_in_partition_view pipv, row_tombstone rt, row_marker rm, is_dummy, is_continuous) = 0;
|
||||
virtual void accept_row_cell(column_id, atomic_cell ac) = 0;
|
||||
virtual void accept_row_cell(column_id, collection_mutation_view cmv) = 0;
|
||||
virtual void accept_row_cell(column_id, collection_mutation cm) = 0;
|
||||
};
|
||||
|
||||
// View on serialized mutation partition. See mutation_partition_serializer.
|
||||
|
||||
Reference in New Issue
Block a user