migration_manager: pass timestamp to pre_create
pass the write timestamp as parameter to the on_pre_create_column_families notification.
This commit is contained in:
@@ -183,7 +183,7 @@ public:
|
||||
muts.emplace_back(std::move(mut));
|
||||
}
|
||||
|
||||
void on_pre_create_column_families(const keyspace_metadata& ksm, std::vector<schema_ptr>& cfms) override {
|
||||
void on_pre_create_column_families(const keyspace_metadata& ksm, std::vector<schema_ptr>& cfms, api::timestamp_type ts) override {
|
||||
std::vector<schema_ptr> new_cfms;
|
||||
|
||||
for (auto sp : cfms) {
|
||||
|
||||
@@ -81,7 +81,7 @@ public:
|
||||
// of the column family's keyspace. The reason for this is that we sometimes create a keyspace
|
||||
// and its column families together. Therefore, listeners can't load the keyspace from the
|
||||
// database. Instead, they should use the `ksm` parameter if needed.
|
||||
virtual void on_pre_create_column_families(const keyspace_metadata& ksm, std::vector<schema_ptr>&) {}
|
||||
virtual void on_pre_create_column_families(const keyspace_metadata& ksm, std::vector<schema_ptr>&, api::timestamp_type) {}
|
||||
virtual void on_before_create_column_family(const keyspace_metadata& ksm, const schema&, utils::chunked_vector<mutation>&, api::timestamp_type) {}
|
||||
virtual void on_before_create_column_families(const keyspace_metadata& ksm, const std::vector<schema_ptr>& cfms, utils::chunked_vector<mutation>& mutations, api::timestamp_type timestamp);
|
||||
virtual void on_before_update_column_family(const schema& new_schema, const schema& old_schema, utils::chunked_vector<mutation>&, api::timestamp_type) {}
|
||||
@@ -155,7 +155,7 @@ public:
|
||||
// We want to do this before calling `before_create_column_families`,
|
||||
// because in `before_create_column_families` we want the subscriber to get
|
||||
// the final list of tables.
|
||||
void pre_create_column_families(const keyspace_metadata& ksm, std::vector<schema_ptr>&);
|
||||
void pre_create_column_families(const keyspace_metadata& ksm, std::vector<schema_ptr>&, api::timestamp_type);
|
||||
|
||||
void before_create_column_family(const keyspace_metadata& ksm, const schema&, utils::chunked_vector<mutation>&, api::timestamp_type);
|
||||
void before_create_column_families(const keyspace_metadata& ksm, const std::vector<schema_ptr>&, utils::chunked_vector<mutation>&, api::timestamp_type);
|
||||
|
||||
@@ -588,10 +588,10 @@ void migration_notifier::before_create_column_family(const keyspace_metadata& ks
|
||||
});
|
||||
}
|
||||
|
||||
void migration_notifier::pre_create_column_families(const keyspace_metadata& ksm, std::vector<schema_ptr>& cfms) {
|
||||
_listeners.thread_for_each([&ksm, &cfms] (migration_listener* listener) {
|
||||
void migration_notifier::pre_create_column_families(const keyspace_metadata& ksm, std::vector<schema_ptr>& cfms, api::timestamp_type timestamp) {
|
||||
_listeners.thread_for_each([&ksm, &cfms, timestamp] (migration_listener* listener) {
|
||||
// allow exceptions. so a listener can effectively kill a create-table
|
||||
listener->on_pre_create_column_families(ksm, cfms);
|
||||
listener->on_pre_create_column_families(ksm, cfms, timestamp);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -678,7 +678,7 @@ static future<utils::chunked_vector<mutation>> do_prepare_new_column_families_an
|
||||
mlogger.info("Create new ColumnFamily: {}", cfm);
|
||||
}
|
||||
|
||||
db.get_notifier().pre_create_column_families(ksm, cfms);
|
||||
db.get_notifier().pre_create_column_families(ksm, cfms, timestamp);
|
||||
|
||||
utils::chunked_vector<mutation> mutations;
|
||||
for (schema_ptr cfm : cfms) {
|
||||
|
||||
Reference in New Issue
Block a user