From 71ede6124a0b3628211c885cb33c3b092b5f009a Mon Sep 17 00:00:00 2001 From: Benny Halevy Date: Tue, 6 Sep 2022 09:00:47 +0300 Subject: [PATCH] db: view: pass base table to view_update_builder To be used by generate_update() for getting the tombstone_gc_state via the table's compaction_manager. Signed-off-by: Benny Halevy --- db/view/view.cc | 3 ++- db/view/view.hh | 12 +++++++++--- replica/table.cc | 2 ++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/db/view/view.cc b/db/view/view.cc index ee067b4029..c2eb127140 100644 --- a/db/view/view.cc +++ b/db/view/view.cc @@ -1278,6 +1278,7 @@ future view_update_builder::on_results() { } view_update_builder make_view_update_builder( + const replica::table& base_table, const schema_ptr& base, std::vector&& views_to_update, flat_mutation_reader_v2&& updates, @@ -1291,7 +1292,7 @@ view_update_builder make_view_update_builder( } return view_updates(std::move(v)); })); - return view_update_builder(base, std::move(vs), std::move(updates), std::move(existings), now); + return view_update_builder(base_table, base, std::move(vs), std::move(updates), std::move(existings), now); } future calculate_affected_clustering_ranges(const schema& base, diff --git a/db/view/view.hh b/db/view/view.hh index 578df1fcf3..21aa6a15b9 100644 --- a/db/view/view.hh +++ b/db/view/view.hh @@ -206,6 +206,10 @@ private: }; class view_update_builder { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-private-field" + const replica::table& _base; +#pragma GCC diagnostic pop schema_ptr _schema; // The base schema std::vector _view_updates; flat_mutation_reader_v2 _updates; @@ -220,12 +224,13 @@ class view_update_builder { partition_key _key = partition_key::make_empty(); public: - view_update_builder(schema_ptr s, + view_update_builder(const replica::table& base, schema_ptr s, std::vector&& views_to_update, flat_mutation_reader_v2&& updates, flat_mutation_reader_v2_opt&& existings, gc_clock::time_point now) - : _schema(std::move(s)) + : _base(base) + , _schema(std::move(s)) , _view_updates(std::move(views_to_update)) , _updates(std::move(updates)) , _existings(std::move(existings)) @@ -249,7 +254,8 @@ private: }; view_update_builder make_view_update_builder( - const schema_ptr& base, + const replica::table& base_table, + const schema_ptr& base_schema, std::vector&& views_to_update, flat_mutation_reader_v2&& updates, flat_mutation_reader_v2_opt&& existings, diff --git a/replica/table.cc b/replica/table.cc index 2728a54ba7..67f6630fd9 100644 --- a/replica/table.cc +++ b/replica/table.cc @@ -1696,6 +1696,7 @@ future<> table::generate_and_propagate_view_updates(const schema_ptr& base, gc_clock::time_point now) const { auto base_token = m.token(); db::view::view_update_builder builder = db::view::make_view_update_builder( + *this, base, std::move(views), make_flat_mutation_reader_from_mutations_v2(m.schema(), std::move(permit), std::move(m)), @@ -1831,6 +1832,7 @@ future<> table::populate_views( gc_clock::time_point now) { auto schema = reader.schema(); db::view::view_update_builder builder = db::view::make_view_update_builder( + *this, schema, std::move(views), std::move(reader),