storage::DataTable *StatsAggregator::GetMetricTable(std::string table_name) { auto catalog = catalog::Catalog::GetInstance(); PL_ASSERT(catalog->GetDatabaseCount() > 0); storage::Database *catalog_database = catalog->GetDatabaseWithName(CATALOG_DATABASE_NAME); PL_ASSERT(catalog_database != nullptr); auto metrics_table = catalog_database->GetTableWithName(table_name); PL_ASSERT(metrics_table != nullptr); return metrics_table; }
TEST_F(CatalogTests, BootstrappingCatalog) { auto catalog = catalog::Catalog::GetInstance(); EXPECT_EQ(catalog->GetDatabaseCount(), 1); storage::Database *database = catalog->GetDatabaseWithName(CATALOG_DATABASE_NAME); EXPECT_NE(database, nullptr); // Check metric tables auto db_metric_table = database->GetTableWithName(DATABASE_METRIC_NAME); EXPECT_NE(db_metric_table, nullptr); }
TEST_F(CatalogTests, BootstrappingCatalog) { auto catalog = catalog::Catalog::GetInstance(); catalog->Bootstrap(); EXPECT_EQ(1, storage::StorageManager::GetInstance()->GetDatabaseCount()); auto &txn_manager = concurrency::TransactionManagerFactory::GetInstance(); auto txn = txn_manager.BeginTransaction(); storage::Database *database = catalog->GetDatabaseWithName(CATALOG_DATABASE_NAME, txn); txn_manager.CommitTransaction(txn); EXPECT_NE(nullptr, database); // Check database metric table auto db_metric_table = database->GetTableWithName(DATABASE_METRICS_CATALOG_NAME); EXPECT_NE(nullptr, db_metric_table); }