query builder progress

This commit is contained in:
Sascha Kühl
2025-12-03 16:18:03 +01:00
parent bfbbd4c589
commit 19eb54df8d
11 changed files with 360 additions and 192 deletions
+13 -5
View File
@@ -315,7 +315,7 @@ void query_compiler::visit(internal::query_create_table_part &part)
}
void query_compiler::visit(internal::query_create_table_columns_part& part) {
std::string result = "(";
std::string result;
if (part.columns().size() < 2) {
for (const auto &col: part.columns()) {
@@ -407,16 +407,24 @@ std::string build_create_column(const object::attribute &col, const sql::dialect
std::string build_constraint(const class object::constraint& cons, const sql::dialect& d) {
std::string result;
if (!cons.name().empty()) {
result.append(d.constraint()).append(" ").append(d.prepare_identifier_string(cons.name())).append(" ");
result.append(d.constraint()).append(" ").append(cons.name()).append(" ");
}
if (cons.is_primary_key_constraint()) {
result.append(d.primary_key());
result.append(d.primary_key()).append(" (").append(cons.column_name()).append(")");
} else if (cons.is_foreign_key_constraint()) {
result.append(d.foreign_key());
result
.append(d.foreign_key())
.append(" (")
.append(cons.column_name())
.append(") ")
.append(d.references()).append(" ")
.append(cons.ref_table_name())
.append(" (")
.append(cons.ref_column_name())
.append(")");
} else {
// handle error
}
result.append("(").append(cons.attribute()->full_name()).append(")");
return result;
}