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:
Botond Dénes
2026-03-13 10:32:10 +02:00
parent 652676e563
commit aab336eb77
3 changed files with 16 additions and 16 deletions

View File

@@ -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) {

View File

@@ -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() {

View File

@@ -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.