schema creation progress

This commit is contained in:
2025-12-05 07:32:59 +01:00
parent d2f1bc0b8e
commit 98da0884f1
12 changed files with 122 additions and 117 deletions
@@ -35,10 +35,6 @@ query_add_key_constraint_intermediate query_alter_table_intermediate::add_constr
return {context_};
}
executable_query query_alter_table_intermediate::add_constraint( const class object::constraint& constraint ) {
return {context_};
}
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_};
+10 -24
View File
@@ -36,9 +36,6 @@ sql::query_context query_compiler::compile(const query_data &data,
}
std::string handle_column(sql::query_context &ctx, const sql::dialect *d, const query_data &data, const column &col) {
// ctx.result_vars.emplace_back(col.column_name());
const auto& column_table = col.table().get();
// ctx.column_aliases.insert({column_table->has_alias() ? column_table->alias() : column_table->name() + "." + col.column_name(), col.alias()});
if (col.is_function()) {
ctx.prototype.emplace_back(col.has_alias() ? col.alias() : col.column_name());
ctx.prototype.back().change_type(utils::basic_type::type_int32);
@@ -153,7 +150,6 @@ void query_compiler::visit(internal::query_select_part &part) {
void query_compiler::visit(internal::query_from_part &part) {
query_.table_name = part.table().name();
query_.sql += " " + build_table_name(part.token(), *dialect_, part.table());
// query_.table_aliases.insert({query_.table_name, part.table().alias()});
}
void query_compiler::visit(internal::query_join_part &part)
@@ -177,40 +173,33 @@ void query_compiler::visit(internal::query_group_by_part &part) {
query_.sql += " " + dialect_->group_by() + " " + prepare_identifier(*dialect_, part.column());
}
void query_compiler::visit(internal::query_order_by_part &part)
{
void query_compiler::visit(internal::query_order_by_part &part) {
query_.sql += " " + dialect_->order_by() +
" " + prepare_criteria(*dialect_, part.column());
}
void query_compiler::visit(internal::query_order_by_asc_part &/*order_by_asc_part*/)
{
void query_compiler::visit(internal::query_order_by_asc_part &/*order_by_asc_part*/) {
query_.sql += " " + dialect_->asc();
}
void query_compiler::visit(internal::query_order_by_desc_part &/*order_by_desc_part*/)
{
void query_compiler::visit(internal::query_order_by_desc_part &/*order_by_desc_part*/) {
query_.sql += " " + dialect_->desc();
}
void query_compiler::visit(internal::query_offset_part &part)
{
void query_compiler::visit(internal::query_offset_part &part) {
query_.sql += " " + dialect_->offset() + " " + std::to_string(part.offset());
}
void query_compiler::visit(internal::query_limit_part &part)
{
void query_compiler::visit(internal::query_limit_part &part) {
query_.sql += " " + dialect_->limit() + " " + std::to_string(part.limit());
}
void query_compiler::visit(internal::query_insert_part &/*insert_part*/)
{
void query_compiler::visit(internal::query_insert_part &/*insert_part*/) {
query_.command = sql::sql_command::SQL_INSERT;
query_.sql = dialect_->insert();
}
void query_compiler::visit(internal::query_into_part &part)
{
void query_compiler::visit(internal::query_into_part &part) {
query_.table_name = part.table().name();
query_.sql += " " + dialect_->into() +
" " + dialect_->prepare_identifier_string(part.table().name());
@@ -383,14 +372,12 @@ void query_compiler::visit(internal::query_set_part &part) {
query_.sql += result;
}
void query_compiler::visit(internal::query_drop_table_part &part)
{
void query_compiler::visit(internal::query_drop_table_part &part) {
query_.table_name = part.table().name();
query_.sql += " " + build_table_name(part.token(), *dialect_, query_.table_name);
}
std::string build_create_column(const object::attribute &col, const sql::dialect &d)
{
std::string build_create_column(const object::attribute &col, const sql::dialect &d) {
std::string result = d.prepare_identifier_string(col.name()) + " " + d.data_type_at(col.type());
if (col.attributes().size() > 0) {
result.append("(" + std::to_string(col.attributes().size()) + ")");
@@ -433,8 +420,7 @@ std::string build_constraint(const class object::constraint& cons, const sql::di
return result;
}
std::string query_compiler::build_table_name(const sql::dialect_token token, const sql::dialect &d, const table& t)
{
std::string query_compiler::build_table_name(const sql::dialect_token token, const sql::dialect &d, const table& t) {
return d.token_at(token) + " " +
(!d.default_schema_name().empty() ? d.prepare_identifier_string(d.default_schema_name()) + "." : "") +
d.prepare_identifier_string(t.name()) +