added alter table command to fluent query builder (progress)
This commit is contained in:
@@ -29,21 +29,13 @@ query_add_foreign_key_constraint_intermediate query_add_key_constraint_intermedi
|
||||
return {context_};
|
||||
}
|
||||
|
||||
void query_drop_key_constraint_intermediate::constraint( const std::string& name ) {}
|
||||
|
||||
void query_drop_key_constraint_intermediate::primary_key() {}
|
||||
|
||||
void query_drop_key_constraint_intermediate::foreign_key( const std::string& name ) {}
|
||||
|
||||
void query_drop_key_constraint_intermediate::foreign_keys( const std::vector<std::string>& names ) {}
|
||||
|
||||
query_add_key_constraint_intermediate query_alter_table_intermediate::add_constraint( const std::string& name ) {
|
||||
context_->parts.push_back(std::make_unique<internal::query_add_key_constraint_part>(name));
|
||||
|
||||
return {context_};
|
||||
}
|
||||
|
||||
query_drop_key_constraint_intermediate query_alter_table_intermediate::drop_constraint( const std::string& name ) {
|
||||
executable_query query_alter_table_intermediate::drop_constraint( const std::string& name ) {
|
||||
context_->parts.push_back(std::make_unique<internal::query_drop_key_constraint_part>(name));
|
||||
return {context_};
|
||||
}
|
||||
|
||||
@@ -52,26 +52,59 @@ std::string handle_column(sql::query_context &ctx, const sql::dialect *d, const
|
||||
}
|
||||
|
||||
void query_compiler::visit(internal::query_alter_part& part) {
|
||||
query_.sql = dialect_->token_at(sql::dialect_token::Create);
|
||||
query_.sql = dialect_->token_at(part.token());
|
||||
}
|
||||
|
||||
void query_compiler::visit(internal::query_alter_table_part& part) {
|
||||
query_.command = sql::sql_command::SQL_ALTER_TABLE;
|
||||
query_.sql += " " + dialect_->token_at(sql::dialect_token::Table) + " " +
|
||||
query_.sql += " " + dialect_->token_at(part.token()) + " " +
|
||||
dialect_->prepare_identifier_string(part.table().name);
|
||||
}
|
||||
|
||||
void query_compiler::visit(internal::query_add_key_constraint_part& part) {
|
||||
query_.sql += " " + dialect_->token_at(sql::dialect_token::AddConstraint) + " " + part.name();
|
||||
query_.sql += " " + dialect_->token_at(sql::dialect_token::AddConstraint) + " " + part.name();
|
||||
}
|
||||
|
||||
void query_compiler::visit( internal::query_add_foreign_key_constraint_part& part ) {}
|
||||
void query_compiler::visit( internal::query_add_foreign_key_constraint_part& part ) {
|
||||
query_.sql += " " + dialect_->token_at(part.token()) + " (";
|
||||
|
||||
if (part.columns().size() < 2) {
|
||||
for (const auto &col: part.columns()) {
|
||||
query_.sql += dialect_->prepare_identifier_string(col.name);
|
||||
}
|
||||
} else {
|
||||
auto it = part.columns().begin();
|
||||
query_.sql += dialect_->prepare_identifier_string(it->name);
|
||||
for (; it != part.columns().end(); ++it) {
|
||||
query_.sql += ", " + dialect_->prepare_identifier_string(it->name);
|
||||
}
|
||||
}
|
||||
query_.sql += ")";
|
||||
}
|
||||
|
||||
void query_compiler::visit( internal::query_add_primary_key_constraint_part& part ) {}
|
||||
|
||||
void query_compiler::visit( internal::query_add_foreign_key_reference_part& part ) {}
|
||||
void query_compiler::visit( internal::query_add_foreign_key_reference_part& part ) {
|
||||
query_.sql += " " + dialect_->token_at(part.token()) + " " +
|
||||
part.table().name + " (";
|
||||
|
||||
void query_compiler::visit(internal::query_drop_key_constraint_part& part) {}
|
||||
if (part.columns().size() < 2) {
|
||||
for (const auto &col: part.columns()) {
|
||||
query_.sql += dialect_->prepare_identifier_string(col.name);
|
||||
}
|
||||
} else {
|
||||
auto it = part.columns().begin();
|
||||
query_.sql += dialect_->prepare_identifier_string(it->name);
|
||||
for (; it != part.columns().end(); ++it) {
|
||||
query_.sql += ", " + dialect_->prepare_identifier_string(it->name);
|
||||
}
|
||||
}
|
||||
query_.sql += ")";
|
||||
}
|
||||
|
||||
void query_compiler::visit(internal::query_drop_key_constraint_part& part) {
|
||||
query_.sql += " " + dialect_->token_at(part.token()) + " " + part.name();
|
||||
}
|
||||
|
||||
void query_compiler::visit(internal::query_select_part &select_part)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user