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 <penberg@cloudius-systems.com>
This commit is contained in:
Pekka Enberg
2015-03-26 12:25:59 +02:00
parent fd8e92ab07
commit 3150bb5b78
2 changed files with 5 additions and 1 deletions

View File

@@ -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);
}

View File

@@ -315,6 +315,7 @@ public:
class database {
public:
database();
std::unordered_map<sstring, keyspace> keyspaces;
future<> init_from_data_directory(sstring datadir);
future<> populate(sstring datadir);