@@ -26,15 +26,13 @@ namespace catalog {
26
26
* @param pg_catalog The database to which this pg_layout belongs.
27
27
*/
28
28
LayoutCatalog::LayoutCatalog (
29
- storage::Database *pg_catalog,
30
- UNUSED_ATTRIBUTE type::AbstractPool *pool,
31
- UNUSED_ATTRIBUTE concurrency::TransactionContext *txn)
32
- : AbstractCatalog(LAYOUT_CATALOG_OID, LAYOUT_CATALOG_NAME,
33
- InitializeSchema ().release(), pg_catalog) {
29
+ storage::Database *pg_catalog, UNUSED_ATTRIBUTE type::AbstractPool *pool,
30
+ UNUSED_ATTRIBUTE concurrency::TransactionContext *txn)
31
+ : AbstractCatalog(LAYOUT_CATALOG_OID, LAYOUT_CATALOG_NAME,
32
+ InitializeSchema ().release(), pg_catalog) {
34
33
// Add indexes for pg_attribute
35
- AddIndex ({ColumnId::TABLE_OID, ColumnId::LAYOUT_OID},
36
- LAYOUT_CATALOG_PKEY_OID, LAYOUT_CATALOG_NAME " _pkey" ,
37
- IndexConstraintType::PRIMARY_KEY);
34
+ AddIndex ({ColumnId::TABLE_OID, ColumnId::LAYOUT_OID}, LAYOUT_CATALOG_PKEY_OID,
35
+ LAYOUT_CATALOG_NAME " _pkey" , IndexConstraintType::PRIMARY_KEY);
38
36
AddIndex ({ColumnId::TABLE_OID}, LAYOUT_CATALOG_SKEY0_OID,
39
37
LAYOUT_CATALOG_NAME " _skey0" , IndexConstraintType::DEFAULT);
40
38
}
@@ -49,35 +47,36 @@ std::unique_ptr<catalog::Schema> LayoutCatalog::InitializeSchema() {
49
47
const std::string not_null_constraint_name = " not_null" ;
50
48
51
49
auto table_id_column = catalog::Column (
52
- type::TypeId::INTEGER, type::Type::GetTypeSize (type::TypeId::INTEGER),
53
- " table_oid" , true );
50
+ type::TypeId::INTEGER, type::Type::GetTypeSize (type::TypeId::INTEGER),
51
+ " table_oid" , true );
54
52
table_id_column.AddConstraint (catalog::Constraint (
55
- ConstraintType::PRIMARY, primary_key_constraint_name));
53
+ ConstraintType::PRIMARY, primary_key_constraint_name));
56
54
table_id_column.AddConstraint (
57
- catalog::Constraint (ConstraintType::NOTNULL, not_null_constraint_name));
55
+ catalog::Constraint (ConstraintType::NOTNULL, not_null_constraint_name));
58
56
59
57
auto layout_oid_column = catalog::Column (
60
- type::TypeId::INTEGER, type::Type::GetTypeSize (type::TypeId::INTEGER),
61
- " layout_oid" , true );
58
+ type::TypeId::INTEGER, type::Type::GetTypeSize (type::TypeId::INTEGER),
59
+ " layout_oid" , true );
62
60
layout_oid_column.AddConstraint (catalog::Constraint (
63
- ConstraintType::PRIMARY, primary_key_constraint_name));
61
+ ConstraintType::PRIMARY, primary_key_constraint_name));
64
62
layout_oid_column.AddConstraint (
65
- catalog::Constraint (ConstraintType::NOTNULL, not_null_constraint_name));
63
+ catalog::Constraint (ConstraintType::NOTNULL, not_null_constraint_name));
66
64
67
65
auto num_columns_column = catalog::Column (
68
- type::TypeId::INTEGER, type::Type::GetTypeSize (type::TypeId::INTEGER),
69
- " num_columns" , true );
66
+ type::TypeId::INTEGER, type::Type::GetTypeSize (type::TypeId::INTEGER),
67
+ " num_columns" , true );
70
68
num_columns_column.AddConstraint (
71
- catalog::Constraint (ConstraintType::NOTNULL, not_null_constraint_name));
69
+ catalog::Constraint (ConstraintType::NOTNULL, not_null_constraint_name));
72
70
73
71
auto column_map_column = catalog::Column (
74
- type::TypeId::VARCHAR, type::Type::GetTypeSize (type::TypeId::VARCHAR),
75
- " column_map" , false );
72
+ type::TypeId::VARCHAR, type::Type::GetTypeSize (type::TypeId::VARCHAR),
73
+ " column_map" , false );
76
74
column_map_column.AddConstraint (
77
- catalog::Constraint (ConstraintType::NOTNULL, not_null_constraint_name));
75
+ catalog::Constraint (ConstraintType::NOTNULL, not_null_constraint_name));
78
76
79
- std::unique_ptr<catalog::Schema> column_catalog_schema (new catalog::Schema (
80
- {table_id_column, layout_oid_column, num_columns_column, column_map_column}));
77
+ std::unique_ptr<catalog::Schema> column_catalog_schema (
78
+ new catalog::Schema ({table_id_column, layout_oid_column,
79
+ num_columns_column, column_map_column}));
81
80
82
81
return column_catalog_schema;
83
82
}
@@ -95,7 +94,7 @@ bool LayoutCatalog::InsertLayout(oid_t table_oid,
95
94
concurrency::TransactionContext *txn) {
96
95
// Create the tuple first
97
96
std::unique_ptr<storage::Tuple> tuple (
98
- new storage::Tuple (catalog_table_->GetSchema (), true ));
97
+ new storage::Tuple (catalog_table_->GetSchema (), true ));
99
98
100
99
auto val0 = type::ValueFactory::GetIntegerValue (table_oid);
101
100
auto val1 = type::ValueFactory::GetIntegerValue (layout->GetOid ());
@@ -120,16 +119,15 @@ bool LayoutCatalog::InsertLayout(oid_t table_oid,
120
119
*/
121
120
bool LayoutCatalog::DeleteLayout (oid_t table_oid, oid_t layout_oid,
122
121
concurrency::TransactionContext *txn) {
123
- oid_t index_offset =
124
- IndexId::PRIMARY_KEY; // Index of table_oid & layout_oid
122
+ oid_t index_offset = IndexId::PRIMARY_KEY; // Index of table_oid & layout_oid
125
123
126
124
std::vector<type::Value> values;
127
125
values.push_back (type::ValueFactory::GetIntegerValue (table_oid).Copy ());
128
126
values.push_back (type::ValueFactory::GetIntegerValue (layout_oid).Copy ());
129
127
130
128
auto pg_table = Catalog::GetInstance ()
131
- ->GetSystemCatalogs (database_oid)
132
- ->GetTableCatalog ();
129
+ ->GetSystemCatalogs (database_oid)
130
+ ->GetTableCatalog ();
133
131
134
132
// delete column from cache
135
133
auto table_object = pg_table->GetTableObject (table_oid, txn);
@@ -151,8 +149,8 @@ bool LayoutCatalog::DeleteLayouts(oid_t table_oid,
151
149
152
150
// delete layouts from cache
153
151
auto pg_table = Catalog::GetInstance ()
154
- ->GetSystemCatalogs (database_oid)
155
- ->GetTableCatalog ();
152
+ ->GetSystemCatalogs (database_oid)
153
+ ->GetTableCatalog ();
156
154
auto table_object = pg_table->GetTableObject (table_oid, txn);
157
155
table_object->EvictAllLayouts ();
158
156
@@ -169,8 +167,8 @@ LayoutCatalog::GetLayouts(oid_t table_oid,
169
167
concurrency::TransactionContext *txn) {
170
168
// Try to find the layouts in the cache
171
169
auto pg_table = Catalog::GetInstance ()
172
- ->GetSystemCatalogs (database_oid)
173
- ->GetTableCatalog ();
170
+ ->GetSystemCatalogs (database_oid)
171
+ ->GetTableCatalog ();
174
172
auto table_object = pg_table->GetTableObject (table_oid, txn);
175
173
PELOTON_ASSERT (table_object && table_object->GetTableOid () == table_oid);
176
174
auto layout_objects = table_object->GetLayouts (true );
@@ -185,23 +183,23 @@ LayoutCatalog::GetLayouts(oid_t table_oid,
185
183
values.push_back (type::ValueFactory::GetIntegerValue (table_oid).Copy ());
186
184
187
185
auto result_tiles =
188
- GetResultWithIndexScan (column_ids, index_offset, values, txn);
186
+ GetResultWithIndexScan (column_ids, index_offset, values, txn);
189
187
190
- for (auto &tile : (*result_tiles)) { // Iterate through the result_tiles
188
+ for (auto &tile : (*result_tiles)) { // Iterate through the result_tiles
191
189
for (auto tuple_id : *tile) {
192
190
oid_t layout_oid =
193
- tile->GetValue (tuple_id, LayoutCatalog::ColumnId::LAYOUT_OID)
194
- .GetAs <oid_t >();
191
+ tile->GetValue (tuple_id, LayoutCatalog::ColumnId::LAYOUT_OID)
192
+ .GetAs <oid_t >();
195
193
oid_t num_columns =
196
- tile->GetValue (tuple_id, LayoutCatalog::ColumnId::NUM_COLUMNS)
197
- .GetAs <oid_t >();
194
+ tile->GetValue (tuple_id, LayoutCatalog::ColumnId::NUM_COLUMNS)
195
+ .GetAs <oid_t >();
198
196
std::string column_map_str =
199
- tile->GetValue (tuple_id, LayoutCatalog::ColumnId::COLUMN_MAP)
200
- .ToString ();
201
- auto column_map = storage::Layout::DeserializeColumnMap (num_columns,
202
- column_map_str);
197
+ tile->GetValue (tuple_id, LayoutCatalog::ColumnId::COLUMN_MAP)
198
+ .ToString ();
199
+ auto column_map =
200
+ storage::Layout::DeserializeColumnMap (num_columns, column_map_str);
203
201
auto layout_object =
204
- std::make_shared<const storage::Layout>(column_map, layout_oid);
202
+ std::make_shared<const storage::Layout>(column_map, layout_oid);
205
203
table_object->InsertLayout (layout_object);
206
204
}
207
205
}
@@ -216,9 +214,8 @@ LayoutCatalog::GetLayouts(oid_t table_oid,
216
214
* @return shared_ptr corresponding to the layout_oid if found.
217
215
* nullptr otherwise.
218
216
*/
219
- std::shared_ptr<const storage::Layout>
220
- LayoutCatalog::GetLayoutWithOid (oid_t table_oid, oid_t layout_oid,
221
- concurrency::TransactionContext *txn) {
217
+ std::shared_ptr<const storage::Layout> LayoutCatalog::GetLayoutWithOid (
218
+ oid_t table_oid, oid_t layout_oid, concurrency::TransactionContext *txn) {
222
219
auto table_layouts = GetLayouts (table_oid, txn);
223
220
for (const auto &layout_entry : table_layouts) {
224
221
if (layout_entry.second ->GetOid () == layout_oid) {
0 commit comments