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

Commit d22bd24

Browse files
authored
Catalog code cleanup (#1414)
* Catalog code cleanup * Rename "XXXObject" to "CatalogEntry" * Rename AddPlpgsqlFunction
1 parent 70f5195 commit d22bd24

File tree

134 files changed

+3998
-2855
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+3998
-2855
lines changed

src/binder/bind_node_visitor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ void BindNodeVisitor::Visit(parser::AnalyzeStatement *node) {
208208
void BindNodeVisitor::Visit(expression::TupleValueExpression *expr) {
209209
if (!expr->GetIsBound()) {
210210
std::tuple<oid_t, oid_t, oid_t> col_pos_tuple;
211-
std::shared_ptr<catalog::TableCatalogObject> table_obj = nullptr;
211+
std::shared_ptr<catalog::TableCatalogEntry> table_obj = nullptr;
212212
type::TypeId value_type;
213213
int depth = -1;
214214

src/binder/binder_context.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,10 @@ void BinderContext::AddRegularTable(const std::string db_name,
3838
const std::string table_alias,
3939
concurrency::TransactionContext *txn) {
4040
// using catalog object to retrieve meta-data
41-
auto table_object = catalog::Catalog::GetInstance()->GetTableObject(
42-
db_name, schema_name, table_name, txn);
41+
auto table_object = catalog::Catalog::GetInstance()->GetTableCatalogEntry(txn,
42+
db_name,
43+
schema_name,
44+
table_name);
4345

4446
if (regular_table_alias_map_.find(table_alias) !=
4547
regular_table_alias_map_.end() ||
@@ -79,9 +81,9 @@ void BinderContext::AddNestedTable(
7981

8082
bool BinderContext::GetColumnPosTuple(
8183
const std::string &col_name,
82-
std::shared_ptr<catalog::TableCatalogObject> table_obj,
84+
std::shared_ptr<catalog::TableCatalogEntry> table_obj,
8385
std::tuple<oid_t, oid_t, oid_t> &col_pos_tuple, type::TypeId &value_type) {
84-
auto column_object = table_obj->GetColumnObject(col_name);
86+
auto column_object = table_obj->GetColumnCatalogEntry(col_name);
8587
if (column_object == nullptr) {
8688
return false;
8789
}
@@ -138,7 +140,7 @@ bool BinderContext::GetColumnPosTuple(
138140

139141
bool BinderContext::GetRegularTableObj(
140142
std::shared_ptr<BinderContext> current_context, std::string &alias,
141-
std::shared_ptr<catalog::TableCatalogObject> &table_obj, int &depth) {
143+
std::shared_ptr<catalog::TableCatalogEntry> &table_obj, int &depth) {
142144
while (current_context != nullptr) {
143145
auto iter = current_context->regular_table_alias_map_.find(alias);
144146
if (iter != current_context->regular_table_alias_map_.end()) {
@@ -174,9 +176,9 @@ void BinderContext::GenerateAllColumnExpressions(
174176
std::vector<std::unique_ptr<expression::AbstractExpression>> &exprs) {
175177
for (auto &entry : regular_table_alias_map_) {
176178
auto &table_obj = entry.second;
177-
auto col_cnt = table_obj->GetColumnObjects().size();
179+
auto col_cnt = table_obj->GetColumnCatalogEntries().size();
178180
for (size_t i = 0; i < col_cnt; i++) {
179-
auto col_obj = table_obj->GetColumnObject(i);
181+
auto col_obj = table_obj->GetColumnCatalogEntry(i);
180182
auto tv_expr = new expression::TupleValueExpression(
181183
std::string(col_obj->GetColumnName()), std::string(entry.first));
182184
tv_expr->SetValueType(col_obj->GetColumnType());

src/brain/query_logger.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,11 @@ void QueryLogger::LogQuery(std::string query_string, uint64_t timestamp) {
4141

4242
// Log query + fingerprint
4343
auto &query_history_catalog = catalog::QueryHistoryCatalog::GetInstance();
44-
query_history_catalog.InsertQueryHistory(
45-
query_string, fingerprint.GetFingerprint(), timestamp, nullptr, txn);
44+
query_history_catalog.InsertQueryHistory(txn,
45+
query_string,
46+
fingerprint.GetFingerprint(),
47+
timestamp,
48+
nullptr);
4649

4750
// We're done
4851
txn_manager.CommitTransaction(txn);

src/catalog/abstract_catalog.cpp

Lines changed: 40 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,22 @@
4444
namespace peloton {
4545
namespace catalog {
4646

47-
AbstractCatalog::AbstractCatalog(oid_t catalog_table_oid,
48-
std::string catalog_table_name,
47+
AbstractCatalog::AbstractCatalog(storage::Database *pg_catalog,
4948
catalog::Schema *catalog_table_schema,
50-
storage::Database *pg_catalog) {
49+
oid_t catalog_table_oid,
50+
std::string catalog_table_name) {
5151
// set database_oid
52-
database_oid = pg_catalog->GetOid();
52+
database_oid_ = pg_catalog->GetOid();
5353
// Create catalog_table_
5454
catalog_table_ = storage::TableFactory::GetDataTable(
55-
database_oid, catalog_table_oid, catalog_table_schema, catalog_table_name,
55+
database_oid_, catalog_table_oid, catalog_table_schema, catalog_table_name,
5656
DEFAULT_TUPLES_PER_TILEGROUP, true, false, true);
5757
// Add catalog_table_ into pg_catalog database
5858
pg_catalog->AddTable(catalog_table_, true);
5959
}
6060

61-
AbstractCatalog::AbstractCatalog(const std::string &catalog_table_ddl,
62-
concurrency::TransactionContext *txn) {
61+
AbstractCatalog::AbstractCatalog(concurrency::TransactionContext *txn,
62+
const std::string &catalog_table_ddl) {
6363
// get catalog table schema
6464
auto &peloton_parser = parser::PostgresParser::GetInstance();
6565
auto create_plan = std::dynamic_pointer_cast<planner::CreatePlan>(
@@ -71,21 +71,27 @@ AbstractCatalog::AbstractCatalog(const std::string &catalog_table_ddl,
7171
auto catalog_database_name = create_plan->GetDatabaseName();
7272
PELOTON_ASSERT(catalog_schema_name == std::string(CATALOG_SCHEMA_NAME));
7373
// create catalog table
74-
Catalog::GetInstance()->CreateTable(
75-
catalog_database_name, catalog_schema_name, catalog_table_name,
76-
std::unique_ptr<catalog::Schema>(catalog_table_schema), txn, true);
74+
Catalog::GetInstance()->CreateTable(txn,
75+
catalog_database_name,
76+
catalog_schema_name,
77+
std::unique_ptr<catalog::Schema>(
78+
catalog_table_schema),
79+
catalog_table_name,
80+
true);
7781

7882
// get catalog table oid
79-
auto catalog_table_object = Catalog::GetInstance()->GetTableObject(
80-
catalog_database_name, catalog_schema_name, catalog_table_name, txn);
83+
auto catalog_table_object = Catalog::GetInstance()->GetTableCatalogEntry(txn,
84+
catalog_database_name,
85+
catalog_schema_name,
86+
catalog_table_name);
8187

8288
// set catalog_table_
8389
try {
8490
catalog_table_ = storage::StorageManager::GetInstance()->GetTableWithOid(
8591
catalog_table_object->GetDatabaseOid(),
8692
catalog_table_object->GetTableOid());
8793
// set database_oid
88-
database_oid = catalog_table_object->GetDatabaseOid();
94+
database_oid_ = catalog_table_object->GetDatabaseOid();
8995
} catch (CatalogException &e) {
9096
LOG_TRACE("Can't find table %d! Return false",
9197
catalog_table_object->GetTableOid());
@@ -97,8 +103,8 @@ AbstractCatalog::AbstractCatalog(const std::string &catalog_table_ddl,
97103
* @param txn TransactionContext
98104
* @return Whether insertion is Successful
99105
*/
100-
bool AbstractCatalog::InsertTuple(std::unique_ptr<storage::Tuple> tuple,
101-
concurrency::TransactionContext *txn) {
106+
bool AbstractCatalog::InsertTuple(concurrency::TransactionContext *txn,
107+
std::unique_ptr<storage::Tuple> tuple) {
102108
if (txn == nullptr)
103109
throw CatalogException("Insert tuple requires transaction");
104110

@@ -137,9 +143,9 @@ bool AbstractCatalog::InsertTuple(std::unique_ptr<storage::Tuple> tuple,
137143
* @param txn TransactionContext
138144
* @return Whether deletion is Successful
139145
*/
140-
bool AbstractCatalog::DeleteWithIndexScan(
141-
oid_t index_offset, std::vector<type::Value> values,
142-
concurrency::TransactionContext *txn) {
146+
bool AbstractCatalog::DeleteWithIndexScan(concurrency::TransactionContext *txn,
147+
oid_t index_offset,
148+
std::vector<type::Value> values) {
143149
if (txn == nullptr)
144150
throw CatalogException("Delete tuple requires transaction");
145151

@@ -189,9 +195,10 @@ bool AbstractCatalog::DeleteWithIndexScan(
189195
*/
190196
std::unique_ptr<std::vector<std::unique_ptr<executor::LogicalTile>>>
191197
AbstractCatalog::GetResultWithIndexScan(
192-
std::vector<oid_t> column_offsets, oid_t index_offset,
193-
std::vector<type::Value> values,
194-
concurrency::TransactionContext *txn) const {
198+
concurrency::TransactionContext *txn,
199+
std::vector<oid_t> column_offsets,
200+
oid_t index_offset,
201+
std::vector<type::Value> values) const {
195202
if (txn == nullptr) throw CatalogException("Scan table requires transaction");
196203

197204
// Index scan
@@ -238,9 +245,10 @@ AbstractCatalog::GetResultWithIndexScan(
238245
* @return Unique pointer of vector of logical tiles
239246
*/
240247
std::unique_ptr<std::vector<std::unique_ptr<executor::LogicalTile>>>
241-
AbstractCatalog::GetResultWithSeqScan(std::vector<oid_t> column_offsets,
242-
expression::AbstractExpression *predicate,
243-
concurrency::TransactionContext *txn) {
248+
AbstractCatalog::GetResultWithSeqScan(
249+
concurrency::TransactionContext *txn,
250+
expression::AbstractExpression *predicate,
251+
std::vector<oid_t> column_offsets) {
244252
if (txn == nullptr) throw CatalogException("Scan table requires transaction");
245253

246254
// Sequential scan
@@ -272,8 +280,9 @@ AbstractCatalog::GetResultWithSeqScan(std::vector<oid_t> column_offsets,
272280
* Note: Use catalog::Catalog::CreateIndex() if you can, only ColumnCatalog and
273281
* IndexCatalog should need this
274282
*/
275-
void AbstractCatalog::AddIndex(const std::vector<oid_t> &key_attrs,
276-
oid_t index_oid, const std::string &index_name,
283+
void AbstractCatalog::AddIndex(const std::string &index_name,
284+
oid_t index_oid,
285+
const std::vector<oid_t> &key_attrs,
277286
IndexConstraintType index_constraint) {
278287
auto schema = catalog_table_->GetSchema();
279288
auto key_schema = catalog::Schema::CopySchema(schema, key_attrs);
@@ -307,10 +316,11 @@ void AbstractCatalog::AddIndex(const std::vector<oid_t> &key_attrs,
307316
* @param index_offset Offset of index for scan
308317
* @return true if successfully executes
309318
*/
310-
bool AbstractCatalog::UpdateWithIndexScan(
311-
std::vector<oid_t> update_columns, std::vector<type::Value> update_values,
312-
std::vector<type::Value> scan_values, oid_t index_offset,
313-
concurrency::TransactionContext *txn) {
319+
bool AbstractCatalog::UpdateWithIndexScan(concurrency::TransactionContext *txn,
320+
oid_t index_offset,
321+
std::vector<type::Value> scan_values,
322+
std::vector<oid_t> update_columns,
323+
std::vector<type::Value> update_values) {
314324
if (txn == nullptr) throw CatalogException("Scan table requires transaction");
315325

316326
std::unique_ptr<executor::ExecutorContext> context(

0 commit comments

Comments
 (0)