Skip to content

Commit

Permalink
Revert 1415 (cmu-db#1453)
Browse files Browse the repository at this point in the history
* Revert "Constraint refactoring (cmu-db#1415)"

This reverts commit 898219f
  • Loading branch information
mbutrovich authored and tli2 committed Jul 6, 2018
1 parent 58593c3 commit 0231468
Show file tree
Hide file tree
Showing 61 changed files with 1,591 additions and 3,415 deletions.
31 changes: 18 additions & 13 deletions src/catalog/abstract_catalog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@
#include "planner/seq_scan_plan.h"

#include "executor/executor_context.h"
#include "executor/create_executor.h"
#include "executor/delete_executor.h"
#include "executor/index_scan_executor.h"
#include "executor/insert_executor.h"
Expand Down Expand Up @@ -61,24 +60,30 @@ AbstractCatalog::AbstractCatalog(storage::Database *pg_catalog,

AbstractCatalog::AbstractCatalog(concurrency::TransactionContext *txn,
const std::string &catalog_table_ddl) {
// Execute create catalog table
// get catalog table schema
auto &peloton_parser = parser::PostgresParser::GetInstance();
std::unique_ptr<executor::ExecutorContext> context(
new executor::ExecutorContext(txn));
auto create_plan = std::dynamic_pointer_cast<planner::CreatePlan>(
optimizer::Optimizer().BuildPelotonPlanTree(
peloton_parser.BuildParseTree(catalog_table_ddl), txn));
executor::CreateExecutor executor(create_plan.get(), context.get());

executor.Init();
executor.Execute();
auto catalog_table_schema = create_plan->GetSchema();
auto catalog_table_name = create_plan->GetTableName();
auto catalog_schema_name = create_plan->GetSchemaName();
auto catalog_database_name = create_plan->GetDatabaseName();
PELOTON_ASSERT(catalog_schema_name == std::string(CATALOG_SCHEMA_NAME));
// create catalog table
Catalog::GetInstance()->CreateTable(txn,
catalog_database_name,
catalog_schema_name,
std::unique_ptr<catalog::Schema>(
catalog_table_schema),
catalog_table_name,
true);

// get catalog table oid
auto catalog_table_object =
Catalog::GetInstance()->GetTableCatalogEntry(txn,
create_plan->GetDatabaseName(),
create_plan->GetSchemaName(),
create_plan->GetTableName());
auto catalog_table_object = Catalog::GetInstance()->GetTableCatalogEntry(txn,
catalog_database_name,
catalog_schema_name,
catalog_table_name);

// set catalog_table_
try {
Expand Down
707 changes: 106 additions & 601 deletions src/catalog/catalog.cpp

Large diffs are not rendered by default.

26 changes: 13 additions & 13 deletions src/catalog/column.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,7 @@ void Column::SetInlined() {
const std::string Column::GetInfo() const {
std::ostringstream os;

os << "Column[" << column_name_ << ", "
<< TypeIdToString(column_type_) << ", "

os << "Column[" << column_name << ", " << TypeIdToString(column_type_) << ", "
<< "Offset:" << column_offset_ << ", ";

if (is_inlined_) {
Expand All @@ -56,17 +54,19 @@ const std::string Column::GetInfo() const {
os << "VarLength:" << variable_length_;
}

if (is_not_null_ && has_default_) {
os << ", {NOT NULL, DEFAULT:"
<< default_value_->ToString() << "}";
} else if (is_not_null_) {
os << ", {NOT NULL}";
} else if (has_default_) {
os << ", {DEFAULT:"
<< default_value_->ToString() << "}";

if (constraints_.empty() == false) {
os << ", {";
bool first = true;
for (auto constraint : constraints_) {
if (first) {
first = false;
} else {
os << ", ";
}
os << constraint.GetInfo();
}
os << "}";
}

os << "]";

return (os.str());
Expand Down
Loading

0 comments on commit 0231468

Please sign in to comment.