fixing postgres tests progress

This commit is contained in:
2026-04-24 16:56:44 +02:00
parent 3a82f4891a
commit 656d045ccf
7 changed files with 32 additions and 30 deletions
+8 -3
View File
@@ -42,19 +42,19 @@ session::session(session_context&& ctx, const query::schema &scm)
// SELECT one
queries.select_one = query::select(node.table())
.from(node.name())
.where(*node.table().primary_key_column().value() == _)
.where(*node.table().primary_key_column() == _)
.compile(dialect_);
// UPDATE one
auto update_set = query::update(node.table());
for (const auto &col: node.table().columns()) {
update_set.set(col, _);
}
queries.update_one = update_set.where(*node.table().primary_key_column().value() == _)
queries.update_one = update_set.where(*node.table().primary_key_column() == _)
.compile(dialect_);
// DELETE one
queries.delete_one = query::remove()
.from(node.name())
.where(*node.table().primary_key_column().value() == _)
.where(*node.table().primary_key_column() == _)
.compile(dialect_);
}
// INSERT one
@@ -63,6 +63,11 @@ session::session(session_context&& ctx, const query::schema &scm)
.values(query::generator::placeholders(node.table().columns().size()))
.compile(dialect_);
queries.insert.resolver = resolver_service_;
queries.update_one.resolver = resolver_service_;
queries.delete_one.resolver = resolver_service_;
queries.select_one.resolver = resolver_service_;
queries.select_all.resolver = resolver_service_;
contexts_by_type_[node.node().type_index()] = queries;
}
+13 -14
View File
@@ -19,16 +19,20 @@ table::table(std::string name, std::string alias, const std::vector<table_column
: name_(std::move(name))
, alias_(std::move(alias))
, columns_(columns) {
for (auto &col : columns_) {
col.table(this);
if (col.is_primary_key()) {
pk_column_ = &col;
for (int i = 0; i < columns.size(); ++i) {
columns_[i].table(this);
if (columns_[i].is_primary_key()) {
pk_column_index_ = i;
}
}
}
table::table(const table &other)
: table(other.name_, other.alias_, other.columns_) {
: name_(other.name_)
, alias_(other.alias_)
, schema_name_(other.schema_name_)
, columns_(other.columns_)
, pk_column_index_(other.pk_column_index_){
for (auto &col : columns_) {
col.table(this);
}
@@ -49,6 +53,7 @@ table & table::operator=(table &&other) noexcept {
name_ = std::move(other.name_);
alias_ = std::move(other.alias_);
columns_ = std::move(other.columns_);
pk_column_index_ = other.pk_column_index_;
for (auto &col : columns_) {
col.table(this);
}
@@ -109,11 +114,11 @@ bool table::is_relation_table() const {
}
bool table::has_primary_key() const {
return pk_column_.has_value();
return pk_column_index_ > -1;
}
std::optional<table_column *> table::primary_key_column() const {
return pk_column_;
const table_column* table::primary_key_column() const {
return pk_column_index_ > -1 ? &columns_.at(pk_column_index_) : nullptr;
}
const std::string &table::join_column_name() const {
@@ -123,10 +128,4 @@ const std::string &table::join_column_name() const {
const std::string &table::inverse_join_column_name() const {
return inverse_join_column_name_;
}
// const table_column& table::create_column(class table &tab, const std::string &name) {
// tab.columns_.emplace_back(name);
// tab.columns_.back().table(&tab);
// return tab.columns_.back();
// }
}
+4 -4
View File
@@ -139,19 +139,19 @@ bool table_column::is_nullable() const {
}
bool table_column::is_primary_key() const {
return !utils::is_constraint_set(attributes_.options(), utils::constraints::PrimaryKey);
return utils::is_constraint_set(attributes_.options(), utils::constraints::PrimaryKey);
}
bool table_column::is_foreign_key() const {
return !utils::is_constraint_set(attributes_.options(), utils::constraints::ForeignKey);
return utils::is_constraint_set(attributes_.options(), utils::constraints::ForeignKey);
}
bool table_column::is_unique() const {
return !utils::is_constraint_set(attributes_.options(), utils::constraints::Unique);
return utils::is_constraint_set(attributes_.options(), utils::constraints::Unique);
}
bool table_column::is_identity() const {
return !utils::is_constraint_set(attributes_.options(), utils::constraints::Identity);
return utils::is_constraint_set(attributes_.options(), utils::constraints::Identity);
}
sql::sql_function_t table_column::function() const {