Skip to content
This repository was archived by the owner on Sep 27, 2019. It is now read-only.

Commit 92d95fa

Browse files
Style fix
1 parent 71aeb02 commit 92d95fa

File tree

6 files changed

+79
-90
lines changed

6 files changed

+79
-90
lines changed

src/catalog/catalog.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -160,16 +160,17 @@ void Catalog::BootstrapSystemCatalogs(storage::Database *database,
160160
false, {TableCatalog::ColumnId::DATABASE_OID}, pool_.get(), txn);
161161

162162
system_catalogs->GetIndexCatalog()->InsertIndex(
163-
COLUMN_STATS_CATALOG_SKEY0_OID, COLUMN_STATS_CATALOG_NAME "_skey0",
164-
COLUMN_STATS_CATALOG_OID, CATALOG_SCHEMA_NAME, IndexType::BWTREE,
165-
IndexConstraintType::UNIQUE, true,
166-
{ColumnStatsCatalog::ColumnId::TABLE_ID,
167-
ColumnStatsCatalog::ColumnId::COLUMN_ID}, pool_.get(), txn);
163+
COLUMN_STATS_CATALOG_SKEY0_OID, COLUMN_STATS_CATALOG_NAME "_skey0",
164+
COLUMN_STATS_CATALOG_OID, CATALOG_SCHEMA_NAME, IndexType::BWTREE,
165+
IndexConstraintType::UNIQUE, true,
166+
{ColumnStatsCatalog::ColumnId::TABLE_ID,
167+
ColumnStatsCatalog::ColumnId::COLUMN_ID},
168+
pool_.get(), txn);
168169
system_catalogs->GetIndexCatalog()->InsertIndex(
169-
COLUMN_STATS_CATALOG_SKEY1_OID, COLUMN_STATS_CATALOG_NAME "_skey1",
170-
COLUMN_STATS_CATALOG_OID, CATALOG_SCHEMA_NAME, IndexType::BWTREE,
171-
IndexConstraintType::UNIQUE, true,
172-
{ColumnStatsCatalog::ColumnId::TABLE_ID}, pool_.get(), txn);
170+
COLUMN_STATS_CATALOG_SKEY1_OID, COLUMN_STATS_CATALOG_NAME "_skey1",
171+
COLUMN_STATS_CATALOG_OID, CATALOG_SCHEMA_NAME, IndexType::BWTREE,
172+
IndexConstraintType::UNIQUE, true,
173+
{ColumnStatsCatalog::ColumnId::TABLE_ID}, pool_.get(), txn);
173174

174175
// Insert records(default + pg_catalog namespace) into pg_namespace
175176
system_catalogs->GetSchemaCatalog()->InsertSchema(
@@ -198,8 +199,8 @@ void Catalog::BootstrapSystemCatalogs(storage::Database *database,
198199
LAYOUT_CATALOG_OID, LAYOUT_CATALOG_NAME, CATALOG_SCHEMA_NAME,
199200
database_oid, pool_.get(), txn);
200201
system_catalogs->GetTableCatalog()->InsertTable(
201-
COLUMN_STATS_CATALOG_OID, COLUMN_STATS_CATALOG_NAME,
202-
CATALOG_SCHEMA_NAME, database_oid, pool_.get(), txn);
202+
COLUMN_STATS_CATALOG_OID, COLUMN_STATS_CATALOG_NAME, CATALOG_SCHEMA_NAME,
203+
database_oid, pool_.get(), txn);
203204
}
204205

205206
void Catalog::Bootstrap() {

src/catalog/column_stats_catalog.cpp

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -23,74 +23,71 @@ namespace peloton {
2323
namespace catalog {
2424

2525
ColumnStatsCatalog::ColumnStatsCatalog(
26-
storage::Database *pg_catalog,
27-
UNUSED_ATTRIBUTE type::AbstractPool *pool,
28-
UNUSED_ATTRIBUTE concurrency::TransactionContext *txn)
29-
: AbstractCatalog(COLUMN_STATS_CATALOG_OID, COLUMN_STATS_CATALOG_NAME,
30-
InitializeSchema().release(), pg_catalog) {
26+
storage::Database *pg_catalog, UNUSED_ATTRIBUTE type::AbstractPool *pool,
27+
UNUSED_ATTRIBUTE concurrency::TransactionContext *txn)
28+
: AbstractCatalog(COLUMN_STATS_CATALOG_OID, COLUMN_STATS_CATALOG_NAME,
29+
InitializeSchema().release(), pg_catalog) {
3130
// Add indexes for pg_column_stats
3231
AddIndex({ColumnId::TABLE_ID, ColumnId::COLUMN_ID},
3332
COLUMN_STATS_CATALOG_SKEY0_OID, COLUMN_STATS_CATALOG_NAME "_skey0",
3433
IndexConstraintType::UNIQUE);
3534
AddIndex({ColumnId::TABLE_ID}, COLUMN_STATS_CATALOG_SKEY1_OID,
3635
COLUMN_STATS_CATALOG_NAME "_skey1", IndexConstraintType::DEFAULT);
37-
3836
}
3937

4038
ColumnStatsCatalog::~ColumnStatsCatalog() {}
4139

4240
std::unique_ptr<catalog::Schema> ColumnStatsCatalog::InitializeSchema() {
43-
4441
const std::string not_null_constraint_name = "notnull";
45-
const auto not_null_constraint = catalog::Constraint(
46-
ConstraintType::NOTNULL, not_null_constraint_name);
42+
const auto not_null_constraint =
43+
catalog::Constraint(ConstraintType::NOTNULL, not_null_constraint_name);
4744

4845
auto table_id_column = catalog::Column(
49-
type::TypeId::INTEGER, type::Type::GetTypeSize(type::TypeId::INTEGER),
50-
"table_id", true);
46+
type::TypeId::INTEGER, type::Type::GetTypeSize(type::TypeId::INTEGER),
47+
"table_id", true);
5148
table_id_column.AddConstraint(not_null_constraint);
5249
auto column_id_column = catalog::Column(
53-
type::TypeId::INTEGER, type::Type::GetTypeSize(type::TypeId::INTEGER),
54-
"column_id", true);
50+
type::TypeId::INTEGER, type::Type::GetTypeSize(type::TypeId::INTEGER),
51+
"column_id", true);
5552
column_id_column.AddConstraint(not_null_constraint);
5653
auto num_rows_column = catalog::Column(
57-
type::TypeId::INTEGER, type::Type::GetTypeSize(type::TypeId::INTEGER),
58-
"num_rows", true);
54+
type::TypeId::INTEGER, type::Type::GetTypeSize(type::TypeId::INTEGER),
55+
"num_rows", true);
5956
num_rows_column.AddConstraint(not_null_constraint);
6057
auto cardinality_column = catalog::Column(
61-
type::TypeId::DECIMAL, type::Type::GetTypeSize(type::TypeId::DECIMAL),
62-
"cardinality", true);
58+
type::TypeId::DECIMAL, type::Type::GetTypeSize(type::TypeId::DECIMAL),
59+
"cardinality", true);
6360
cardinality_column.AddConstraint(not_null_constraint);
6461
auto frac_null_column = catalog::Column(
65-
type::TypeId::DECIMAL, type::Type::GetTypeSize(type::TypeId::DECIMAL),
66-
"frac_null", true);
62+
type::TypeId::DECIMAL, type::Type::GetTypeSize(type::TypeId::DECIMAL),
63+
"frac_null", true);
6764
frac_null_column.AddConstraint(not_null_constraint);
6865
auto most_common_vals_column = catalog::Column(
69-
type::TypeId::VARCHAR, type::Type::GetTypeSize(type::TypeId::VARCHAR),
70-
"most_common_vals", false);
66+
type::TypeId::VARCHAR, type::Type::GetTypeSize(type::TypeId::VARCHAR),
67+
"most_common_vals", false);
7168
auto most_common_freqs_column = catalog::Column(
72-
type::TypeId::VARCHAR, type::Type::GetTypeSize(type::TypeId::VARCHAR),
73-
"most_common_freqs", false);
69+
type::TypeId::VARCHAR, type::Type::GetTypeSize(type::TypeId::VARCHAR),
70+
"most_common_freqs", false);
7471
auto histogram_bounds_column = catalog::Column(
75-
type::TypeId::VARCHAR, type::Type::GetTypeSize(type::TypeId::VARCHAR),
76-
"histogram_bounds", false);
72+
type::TypeId::VARCHAR, type::Type::GetTypeSize(type::TypeId::VARCHAR),
73+
"histogram_bounds", false);
7774
auto column_name_column = catalog::Column(
78-
type::TypeId::VARCHAR, type::Type::GetTypeSize(type::TypeId::VARCHAR),
79-
"column_name", false);
75+
type::TypeId::VARCHAR, type::Type::GetTypeSize(type::TypeId::VARCHAR),
76+
"column_name", false);
8077
auto has_index_column = catalog::Column(
81-
type::TypeId::BOOLEAN, type::Type::GetTypeSize(type::TypeId::BOOLEAN),
82-
"has_index", true);
78+
type::TypeId::BOOLEAN, type::Type::GetTypeSize(type::TypeId::BOOLEAN),
79+
"has_index", true);
8380

8481
std::unique_ptr<catalog::Schema> column_stats_schema(new catalog::Schema(
85-
{table_id_column, column_id_column, num_rows_column, cardinality_column,
86-
frac_null_column, most_common_vals_column, most_common_freqs_column,
87-
histogram_bounds_column, column_name_column, has_index_column}));
82+
{table_id_column, column_id_column, num_rows_column, cardinality_column,
83+
frac_null_column, most_common_vals_column, most_common_freqs_column,
84+
histogram_bounds_column, column_name_column, has_index_column}));
8885
return column_stats_schema;
8986
}
9087

9188
bool ColumnStatsCatalog::InsertColumnStats(
92-
oid_t table_id, oid_t column_id, int num_rows,
93-
double cardinality, double frac_null, std::string most_common_vals,
89+
oid_t table_id, oid_t column_id, int num_rows, double cardinality,
90+
double frac_null, std::string most_common_vals,
9491
std::string most_common_freqs, std::string histogram_bounds,
9592
std::string column_name, bool has_index, type::AbstractPool *pool,
9693
concurrency::TransactionContext *txn) {
@@ -142,8 +139,7 @@ bool ColumnStatsCatalog::InsertColumnStats(
142139
}
143140

144141
bool ColumnStatsCatalog::DeleteColumnStats(
145-
oid_t table_id, oid_t column_id,
146-
concurrency::TransactionContext *txn) {
142+
oid_t table_id, oid_t column_id, concurrency::TransactionContext *txn) {
147143
oid_t index_offset = IndexId::SECONDARY_KEY_0; // Secondary key index
148144

149145
std::vector<type::Value> values;
@@ -154,8 +150,7 @@ bool ColumnStatsCatalog::DeleteColumnStats(
154150
}
155151

156152
std::unique_ptr<std::vector<type::Value>> ColumnStatsCatalog::GetColumnStats(
157-
oid_t table_id, oid_t column_id,
158-
concurrency::TransactionContext *txn) {
153+
oid_t table_id, oid_t column_id, concurrency::TransactionContext *txn) {
159154
std::vector<oid_t> column_ids(
160155
{ColumnId::NUM_ROWS, ColumnId::CARDINALITY, ColumnId::FRAC_NULL,
161156
ColumnId::MOST_COMMON_VALS, ColumnId::MOST_COMMON_FREQS,

src/include/catalog/column_stats_catalog.h

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ namespace catalog {
4545

4646
class ColumnStatsCatalog : public AbstractCatalog {
4747
public:
48-
4948
ColumnStatsCatalog(storage::Database *pg_catalog, type::AbstractPool *pool,
5049
concurrency::TransactionContext *txn);
5150

@@ -54,8 +53,8 @@ class ColumnStatsCatalog : public AbstractCatalog {
5453
//===--------------------------------------------------------------------===//
5554
// write Related API
5655
//===--------------------------------------------------------------------===//
57-
bool InsertColumnStats(oid_t table_id, oid_t column_id,
58-
int num_rows, double cardinality, double frac_null,
56+
bool InsertColumnStats(oid_t table_id, oid_t column_id, int num_rows,
57+
double cardinality, double frac_null,
5958
std::string most_common_vals,
6059
std::string most_common_freqs,
6160
std::string histogram_bounds, std::string column_name,
@@ -68,16 +67,14 @@ class ColumnStatsCatalog : public AbstractCatalog {
6867
// Read-only Related API
6968
//===--------------------------------------------------------------------===//
7069
std::unique_ptr<std::vector<type::Value>> GetColumnStats(
71-
oid_t table_id, oid_t column_id,
72-
concurrency::TransactionContext *txn);
70+
oid_t table_id, oid_t column_id, concurrency::TransactionContext *txn);
7371

7472
size_t GetTableStats(
75-
oid_t table_id, concurrency::TransactionContext *txn,
76-
std::map<oid_t, std::unique_ptr<std::vector<type::Value>>> &
77-
column_stats_map);
73+
oid_t table_id, concurrency::TransactionContext *txn,
74+
std::map<oid_t, std::unique_ptr<std::vector<type::Value>>>
75+
&column_stats_map);
7876
// TODO: add more if needed
7977

80-
8178
/** @brief private function for initialize schema of pg_index
8279
* @return unqiue pointer to schema
8380
*/

src/include/optimizer/stats/stats_storage.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,7 @@ class StatsStorage {
6868
/* Functions for triggerring stats collection */
6969

7070
ResultType AnalyzeStatsForAllTablesWithDatabaseOid(
71-
oid_t database_oid,
72-
concurrency::TransactionContext *txn = nullptr);
71+
oid_t database_oid, concurrency::TransactionContext *txn = nullptr);
7372

7473
ResultType AnalyzeStatsForTable(
7574
storage::DataTable *table,

src/optimizer/stats/stats_storage.cpp

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -98,21 +98,20 @@ void StatsStorage::InsertOrUpdateColumnStats(
9898
cardinality, frac_null, most_common_vals.c_str(),
9999
most_common_freqs.c_str(), histogram_bounds.c_str());
100100
auto pg_column_stats = catalog::Catalog::GetInstance()
101-
->GetSystemCatalogs(database_id)
102-
->GetColumnStatsCatalog();
101+
->GetSystemCatalogs(database_id)
102+
->GetColumnStatsCatalog();
103103
auto &txn_manager = concurrency::TransactionManagerFactory::GetInstance();
104104

105105
bool single_statement_txn = false;
106106
if (txn == nullptr) {
107107
single_statement_txn = true;
108108
txn = txn_manager.BeginTransaction();
109109
}
110-
pg_column_stats->DeleteColumnStats(table_id, column_id,
111-
txn);
112-
pg_column_stats->InsertColumnStats(
113-
table_id, column_id, num_rows, cardinality, frac_null,
114-
most_common_vals, most_common_freqs, histogram_bounds, column_name,
115-
has_index, pool_.get(), txn);
110+
pg_column_stats->DeleteColumnStats(table_id, column_id, txn);
111+
pg_column_stats->InsertColumnStats(table_id, column_id, num_rows, cardinality,
112+
frac_null, most_common_vals,
113+
most_common_freqs, histogram_bounds,
114+
column_name, has_index, pool_.get(), txn);
116115

117116
if (single_statement_txn) {
118117
txn_manager.CommitTransaction(txn);
@@ -127,13 +126,13 @@ std::shared_ptr<ColumnStats> StatsStorage::GetColumnStatsByID(oid_t database_id,
127126
oid_t table_id,
128127
oid_t column_id) {
129128
auto pg_column_stats = catalog::Catalog::GetInstance()
130-
->GetSystemCatalogs(database_id)
131-
->GetColumnStatsCatalog();
129+
->GetSystemCatalogs(database_id)
130+
->GetColumnStatsCatalog();
132131
auto &txn_manager = concurrency::TransactionManagerFactory::GetInstance();
133132
auto txn = txn_manager.BeginTransaction();
134133
// std::unique_ptr<std::vector<type::Value>> column_stats_vector
135-
auto column_stats_vector = pg_column_stats->GetColumnStats(
136-
table_id, column_id, txn);
134+
auto column_stats_vector =
135+
pg_column_stats->GetColumnStats(table_id, column_id, txn);
137136
txn_manager.CommitTransaction(txn);
138137

139138
return ConvertVectorToColumnStats(database_id, table_id, column_id,
@@ -211,8 +210,8 @@ std::shared_ptr<ColumnStats> StatsStorage::ConvertVectorToColumnStats(
211210
std::shared_ptr<TableStats> StatsStorage::GetTableStats(
212211
oid_t database_id, oid_t table_id, concurrency::TransactionContext *txn) {
213212
auto pg_column_stats = catalog::Catalog::GetInstance()
214-
->GetSystemCatalogs(database_id)
215-
->GetColumnStatsCatalog();
213+
->GetSystemCatalogs(database_id)
214+
->GetColumnStatsCatalog();
216215
std::map<oid_t, std::unique_ptr<std::vector<type::Value>>> column_stats_map;
217216
pg_column_stats->GetTableStats(table_id, txn, column_stats_map);
218217

@@ -236,8 +235,8 @@ std::shared_ptr<TableStats> StatsStorage::GetTableStats(
236235
oid_t database_id, oid_t table_id, std::vector<oid_t> column_ids,
237236
concurrency::TransactionContext *txn) {
238237
auto pg_column_stats = catalog::Catalog::GetInstance()
239-
->GetSystemCatalogs(database_id)
240-
->GetColumnStatsCatalog();
238+
->GetSystemCatalogs(database_id)
239+
->GetColumnStatsCatalog();
241240
std::map<oid_t, std::unique_ptr<std::vector<type::Value>>> column_stats_map;
242241
pg_column_stats->GetTableStats(table_id, txn, column_stats_map);
243242

@@ -258,18 +257,17 @@ std::shared_ptr<TableStats> StatsStorage::GetTableStats(
258257
* datatables to collect their stats and store them in the column_stats_catalog.
259258
*/
260259
ResultType StatsStorage::AnalyzeStatsForAllTablesWithDatabaseOid(
261-
oid_t database_oid,
262-
UNUSED_ATTRIBUTE concurrency::TransactionContext *txn) {
260+
oid_t database_oid, UNUSED_ATTRIBUTE concurrency::TransactionContext *txn) {
263261
if (txn == nullptr) {
264262
LOG_TRACE("Do not have transaction to analyze all tables' stats.");
265263
return ResultType::FAILURE;
266264
}
267265

268266
auto storage_manager = storage::StorageManager::GetInstance();
269-
auto database = storage_manager->GetDatabaseWithOid(database);
267+
auto database = storage_manager->GetDatabaseWithOid(database_oid);
270268
PELOTON_ASSERT(database != nullptr);
271-
auto pg_database = catalog::Catalog::GetInstance()
272-
->GetDatabaseObject(database_oid, txn);
269+
auto pg_database =
270+
catalog::Catalog::GetInstance()->GetDatabaseObject(database_oid, txn);
273271
auto table_objects = pg_database->GetTableObjects();
274272
for (auto &table_object_entry : table_objects) {
275273
auto table_oid = table_object_entry.first;
@@ -280,7 +278,7 @@ ResultType StatsStorage::AnalyzeStatsForAllTablesWithDatabaseOid(
280278
LOG_TRACE("Analyzing table: %s", table_object->GetTableName().c_str());
281279
auto table = database->GetTableWithOid(table_oid);
282280
std::unique_ptr<TableStatsCollector> table_stats_collector(
283-
new TableStatsCollector(table));
281+
new TableStatsCollector(table));
284282
table_stats_collector->CollectColumnStats();
285283
InsertOrUpdateTableStats(table, table_stats_collector.get(), txn);
286284
}

test/optimizer/stats_storage_test.cpp

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ void VerifyAndPrintColumnStats(storage::DataTable *data_table,
9393
}
9494

9595
TEST_F(StatsStorageTests, InsertAndGetTableStatsTest) {
96-
9796
const std::string db_name = "test_db";
9897
TestingExecutorUtil::InitializeDatabase(db_name);
9998
auto data_table = InitializeTestTable();
@@ -240,8 +239,8 @@ TEST_F(StatsStorageTests, AnalyzeStatsForAllTablesTest) {
240239
StatsStorage *stats_storage = StatsStorage::GetInstance();
241240

242241
// Must pass in the transaction.
243-
ResultType result = stats_storage
244-
->AnalyzeStatsForAllTablesWithDatabaseOid(db_oid);
242+
ResultType result =
243+
stats_storage->AnalyzeStatsForAllTablesWithDatabaseOid(db_oid);
245244
EXPECT_EQ(result, ResultType::FAILURE);
246245

247246
auto &txn_manager = concurrency::TransactionManagerFactory::GetInstance();
@@ -253,7 +252,6 @@ TEST_F(StatsStorageTests, AnalyzeStatsForAllTablesTest) {
253252
// Check the correctness of the stats.
254253
VerifyAndPrintColumnStats(data_table, 4);
255254
TestingExecutorUtil::DeleteDatabase(db_name);
256-
257255
}
258256

259257
TEST_F(StatsStorageTests, GetTableStatsTest) {
@@ -265,13 +263,14 @@ TEST_F(StatsStorageTests, GetTableStatsTest) {
265263

266264
auto &txn_manager = concurrency::TransactionManagerFactory::GetInstance();
267265
auto txn = txn_manager.BeginTransaction();
268-
ResultType result = stats_storage
269-
->AnalyzeStatsForAllTablesWithDatabaseOid(db_oid, txn);
266+
ResultType result =
267+
stats_storage->AnalyzeStatsForAllTablesWithDatabaseOid(db_oid, txn);
268+
EXPECT_EQ(ResultType::SUCCESS, result);
270269
txn_manager.CommitTransaction(txn);
271270

272271
txn = txn_manager.BeginTransaction();
273-
std::shared_ptr<TableStats> table_stats = stats_storage->GetTableStats(
274-
db_oid, data_table->GetOid(), txn);
272+
std::shared_ptr<TableStats> table_stats =
273+
stats_storage->GetTableStats(db_oid, data_table->GetOid(), txn);
275274
txn_manager.CommitTransaction(txn);
276275
EXPECT_EQ(table_stats->num_rows, tuple_count);
277276
TestingExecutorUtil::DeleteDatabase(db_name);

0 commit comments

Comments
 (0)