removed class query and moved their static methods to simple functions

This commit is contained in:
2026-03-26 09:34:32 +01:00
parent 3fc08fb7ff
commit fedce38270
23 changed files with 283 additions and 286 deletions
+3 -3
View File
@@ -123,7 +123,7 @@ utils::result<object::object_ptr<Type>, utils::error> session::insert(object::ob
// For now, we derive from the schema type used for the root insert: simplistic but works if table name == entity name.
const std::string seq_name = it->second.name() + "_seq";
auto id_res = query::query::select().nextval(seq_name).fetch_value<std::uint64_t>(*this);
auto id_res = query::select().nextval(seq_name).fetch_value<std::uint64_t>(*this);
if (!id_res.is_ok() || !id_res.value().has_value()) {
return utils::failure(make_error(error_code::FailedToBuildQuery, "Failed to obtain next sequence value."));
}
@@ -227,7 +227,7 @@ utils::result<object::object_ptr<Type>, utils::error> session::update(const obje
using namespace matador::query;
const auto col = table_column(it->second.node().info().primary_key_attribute()->name());
auto res = matador::query::query::update(it->second.name())
auto res = query::update(it->second.name())
.set<Type>()
.where(col == _)
.prepare(*this);
@@ -253,7 +253,7 @@ utils::result<void, utils::error> session::remove(const object::object_ptr<Type>
using namespace matador::query;
const auto col = table_column(it->second.node().info().primary_key_attribute()->name());
auto res = matador::query::query::remove()
auto res = query::remove()
.from(it->second.name())
.where(col == _)
.prepare(*this);
@@ -178,7 +178,7 @@ public:
// Build INSERT into relation table with the 2 FK columns
insert_step rel_step{};
rel_step.query = executable_query{
query::query::insert()
insert()
.into(relation_table, {table_column{&relation_table, join_column}, table_column{&relation_table, inverse_join_column}})
.values({utils::database_type{current_entity_pk_}, utils::database_type{fk.value}})
};
@@ -244,7 +244,7 @@ private:
if (info.has_primary_key() && step.pk_generator == utils::generator_type::Identity) {
const table_column pk_col(&it->second.table(), step.pk_name);
step.query = fetchable_query{query::query::insert().into(it->second.table()).values(*ptr).returning(pk_col)};
step.query = fetchable_query{insert().into(it->second.table()).values(*ptr).returning(pk_col)};
step.apply_returning = [ptr, pk_name = step.pk_name](const sql::record &rec) {
if (auto v = rec.at<std::uint64_t>(pk_name); v.has_value()) {
pk_setter setter{pk_name, *v};
@@ -252,7 +252,7 @@ private:
}
};
} else {
step.query = executable_query{query::query::insert().into(it->second.table()).values(*ptr)};
step.query = executable_query{insert().into(it->second.table()).values(*ptr)};
}
steps_.push_back(std::move(step));
}
+14 -19
View File
@@ -17,25 +17,20 @@ table_column avg(const std::string &column);
table_column maximum(const std::string &column);
table_column minimum(const std::string &column);
class query
{
public:
[[nodiscard]] static query_create_intermediate create();
[[nodiscard]] static query_drop_intermediate drop();
[[nodiscard]] static query_select_intermediate select();
[[nodiscard]] static query_select_intermediate select(std::initializer_list<table_column> columns);
[[nodiscard]] static query_select_intermediate select(const std::vector<table_column>& columns);
[[nodiscard]] static query_select_intermediate select(const std::vector<std::string> &column_names);
template<class Type>
[[nodiscard]] static query_select_intermediate select(const schema &scm) {
return select(generator::columns<Type>(scm));
}
[[nodiscard]] static query_insert_intermediate insert();
[[nodiscard]] static query_update_intermediate update(const table &table);
[[nodiscard]] static query_delete_intermediate remove();
[[nodiscard]] static query_alter_intermediate alter();
};
[[nodiscard]] query_create_intermediate create();
[[nodiscard]] query_drop_intermediate drop();
[[nodiscard]] query_select_intermediate select();
[[nodiscard]] query_select_intermediate select(std::initializer_list<table_column> columns);
[[nodiscard]] query_select_intermediate select(const std::vector<table_column>& columns);
[[nodiscard]] query_select_intermediate select(const std::vector<std::string> &column_names);
template<class Type>
[[nodiscard]] query_select_intermediate select(const schema &scm) {
return select(generator::columns<Type>(scm));
}
[[nodiscard]] query_insert_intermediate insert();
[[nodiscard]] query_update_intermediate update(const table &table);
[[nodiscard]] query_delete_intermediate remove();
[[nodiscard]] query_alter_intermediate alter();
}
#endif //QUERY_QUERY_HPP
@@ -74,7 +74,7 @@ public:
entity_query_data_.where_clause = std::move(clause);
}
fetchable_query q = query::query::select(entity_query_data_.columns)
fetchable_query q = select(entity_query_data_.columns)
.from(*entity_query_data_.root_table)
.join_left(entity_query_data_.joins)
.where(std::move(entity_query_data_.where_clause))