@@ -23,74 +23,71 @@ namespace peloton {
23
23
namespace catalog {
24
24
25
25
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) {
31
30
// Add indexes for pg_column_stats
32
31
AddIndex ({ColumnId::TABLE_ID, ColumnId::COLUMN_ID},
33
32
COLUMN_STATS_CATALOG_SKEY0_OID, COLUMN_STATS_CATALOG_NAME " _skey0" ,
34
33
IndexConstraintType::UNIQUE);
35
34
AddIndex ({ColumnId::TABLE_ID}, COLUMN_STATS_CATALOG_SKEY1_OID,
36
35
COLUMN_STATS_CATALOG_NAME " _skey1" , IndexConstraintType::DEFAULT);
37
-
38
36
}
39
37
40
38
ColumnStatsCatalog::~ColumnStatsCatalog () {}
41
39
42
40
std::unique_ptr<catalog::Schema> ColumnStatsCatalog::InitializeSchema () {
43
-
44
41
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);
47
44
48
45
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 );
51
48
table_id_column.AddConstraint (not_null_constraint);
52
49
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 );
55
52
column_id_column.AddConstraint (not_null_constraint);
56
53
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 );
59
56
num_rows_column.AddConstraint (not_null_constraint);
60
57
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 );
63
60
cardinality_column.AddConstraint (not_null_constraint);
64
61
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 );
67
64
frac_null_column.AddConstraint (not_null_constraint);
68
65
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 );
71
68
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 );
74
71
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 );
77
74
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 );
80
77
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 );
83
80
84
81
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}));
88
85
return column_stats_schema;
89
86
}
90
87
91
88
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,
94
91
std::string most_common_freqs, std::string histogram_bounds,
95
92
std::string column_name, bool has_index, type::AbstractPool *pool,
96
93
concurrency::TransactionContext *txn) {
@@ -142,8 +139,7 @@ bool ColumnStatsCatalog::InsertColumnStats(
142
139
}
143
140
144
141
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) {
147
143
oid_t index_offset = IndexId::SECONDARY_KEY_0; // Secondary key index
148
144
149
145
std::vector<type::Value> values;
@@ -154,8 +150,7 @@ bool ColumnStatsCatalog::DeleteColumnStats(
154
150
}
155
151
156
152
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) {
159
154
std::vector<oid_t > column_ids (
160
155
{ColumnId::NUM_ROWS, ColumnId::CARDINALITY, ColumnId::FRAC_NULL,
161
156
ColumnId::MOST_COMMON_VALS, ColumnId::MOST_COMMON_FREQS,
0 commit comments