From 3150bb5b782647374cb1efcd38fe2e2bc129bb4e Mon Sep 17 00:00:00 2001 From: Pekka Enberg Date: Thu, 26 Mar 2015 12:25:59 +0200 Subject: [PATCH] database: Initialize system keyspace in database constructor System keyspace is used for things like keyspace and table metadata. Initialize it in database constructor so that they're always available. Needed for CQL create keyspace test case, for example. Signed-off-by: Pekka Enberg --- database.cc | 5 ++++- database.hh | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/database.cc b/database.cc index 7c9f38843d..e5df66a407 100644 --- a/database.cc +++ b/database.cc @@ -325,6 +325,10 @@ future<> keyspace::populate(sstring ksdir) { }); } +database::database() { + keyspaces.emplace("system", db::system_keyspace::make()); +} + future<> database::populate(sstring datadir) { return lister::scan_dir(datadir, directory_entry_type::directory, [this, datadir] (directory_entry de) { auto& ks_name = de.name; @@ -343,7 +347,6 @@ future<> database::populate(sstring datadir) { future<> database::init_from_data_directory(sstring datadir) { - keyspaces.emplace("system", db::system_keyspace::make()); return populate(datadir); } diff --git a/database.hh b/database.hh index 38e9e40e55..fca4654b20 100644 --- a/database.hh +++ b/database.hh @@ -315,6 +315,7 @@ public: class database { public: + database(); std::unordered_map keyspaces; future<> init_from_data_directory(sstring datadir); future<> populate(sstring datadir);