From 1b2847696dca0a3c21e48e8c27098da9bd6d52e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20K=C3=BChl?= Date: Sun, 13 Jul 2025 20:58:35 +0200 Subject: [PATCH] fixed linux build for relation completer --- demo/work.cpp | 6 +++--- include/matador/object/foreign_node_completer.hpp | 12 ++++++------ include/matador/object/internal/shadow_schema.hpp | 4 ++-- include/matador/sql/connection_pool.hpp | 5 ++++- include/matador/utils/primary_key_attribute.hpp | 4 +++- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/demo/work.cpp b/demo/work.cpp index 1317650..d6283d9 100644 --- a/demo/work.cpp +++ b/demo/work.cpp @@ -72,7 +72,7 @@ using namespace work::models; int main() { const object::schema schema("Administration"); - sql::connection_pool pool("postgres://news:news@127.0.0.1:15432/matador", 4); + sql::connection_pool pool("postgres://test:test123!@127.0.0.1:5432/matador", 4); orm::session ses(pool); @@ -91,8 +91,8 @@ int main() { .and_then([&ses] { return ses.attach("payloads"); }) .and_then([&ses] { return ses.attach("id_list_payloads"); }) .and_then([&ses] { return ses.attach("id_payloads"); }) - .and_then([&ses] { return ses.attach("tasks"); }); - // .and_then([&ses] { return ses.create_schema(); }); + .and_then([&ses] { return ses.attach("tasks"); }) + .and_then([&ses] { return ses.create_schema(); }); if (!result) { std::cout << "error: " << result.err().message() << std::endl; diff --git a/include/matador/object/foreign_node_completer.hpp b/include/matador/object/foreign_node_completer.hpp index 3c74d2d..207142b 100644 --- a/include/matador/object/foreign_node_completer.hpp +++ b/include/matador/object/foreign_node_completer.hpp @@ -44,12 +44,12 @@ public: template void on_belongs_to(const char *id, ForeignPointerType &/*obj*/, const utils::foreign_attributes &/*attr*/); template - static void on_has_one(const char * id, ForeignPointerType &/*obj*/, const utils::foreign_attributes &/*attr*/) {} + static void on_has_one(const char * /*id*/, ForeignPointerType &/*obj*/, const utils::foreign_attributes &/*attr*/) {} template void on_has_many(const char *id, CollectionType &, const char *join_column, const utils::foreign_attributes &attr, std::enable_if_t::value> * = nullptr); template - void on_has_many(const char *id, CollectionType &, const char *join_column, const utils::foreign_attributes &attr, std::enable_if_t::value> * = nullptr) {} + void on_has_many(const char * /*id*/, CollectionType &, const char * /*join_column*/, const utils::foreign_attributes & /*attr*/, std::enable_if_t::value> * = nullptr) {} template void on_has_many_to_many(const char *id, CollectionType &collection, const char *join_column, const char *inverse_join_column, const utils::foreign_attributes &attr); @@ -87,22 +87,22 @@ private: template -void foreign_node_completer::on_belongs_to( const char* id, ForeignPointerType&, const utils::foreign_attributes& ) { +void foreign_node_completer::on_belongs_to( const char* /*id*/, ForeignPointerType&, const utils::foreign_attributes& ) { attach_node(); } template -void foreign_node_completer::on_has_many( const char* id, CollectionType&, const char* join_column, const utils::foreign_attributes& attr, std::enable_if_t::value>* ) { +void foreign_node_completer::on_has_many( const char* /*id*/, CollectionType&, const char* /*join_column*/, const utils::foreign_attributes& /*attr*/, std::enable_if_t::value>* ) { attach_node(); } template -void foreign_node_completer::on_has_many_to_many( const char* id, CollectionType& collection, const char* join_column, const char* inverse_join_column, const utils::foreign_attributes& attr ) { +void foreign_node_completer::on_has_many_to_many( const char* /*id*/, CollectionType& /*collection*/, const char* /*join_column*/, const char* /*inverse_join_column*/, const utils::foreign_attributes& /*attr*/ ) { attach_node(); } template -void foreign_node_completer::on_has_many_to_many( const char* id, CollectionType& collection, const utils::foreign_attributes& attr ) { +void foreign_node_completer::on_has_many_to_many( const char* /*id*/, CollectionType& /*collection*/, const utils::foreign_attributes& /*attr*/ ) { attach_node(); } diff --git a/include/matador/object/internal/shadow_schema.hpp b/include/matador/object/internal/shadow_schema.hpp index e940e46..bd86349 100644 --- a/include/matador/object/internal/shadow_schema.hpp +++ b/include/matador/object/internal/shadow_schema.hpp @@ -20,8 +20,8 @@ private: public: explicit shadow_schema(object::schema& s); - schema& schema() const; - bool schema_contains(const std::type_index& ti) const; + object::schema& schema() const; + [[nodiscard]] bool schema_contains(const std::type_index& ti) const; [[nodiscard]] utils::result find_node(const std::type_index &type_index) const; [[nodiscard]] utils::result attach_node(const std::shared_ptr &node) const; [[nodiscard]] utils::result detach_node(const std::shared_ptr &node) const; diff --git a/include/matador/sql/connection_pool.hpp b/include/matador/sql/connection_pool.hpp index 2911fb2..fbe8208 100644 --- a/include/matador/sql/connection_pool.hpp +++ b/include/matador/sql/connection_pool.hpp @@ -82,7 +82,10 @@ public: auto &conn = connection_repo_.back(); idle_connections_.emplace(conn.first, &conn); // Todo: handle result - std::ignore = conn.second.open(); + const auto result = conn.second.open(); + if (!result) { + throw std::runtime_error("Failed to open connection"); + } --count; } } diff --git a/include/matador/utils/primary_key_attribute.hpp b/include/matador/utils/primary_key_attribute.hpp index 53acd6d..d35cd62 100644 --- a/include/matador/utils/primary_key_attribute.hpp +++ b/include/matador/utils/primary_key_attribute.hpp @@ -1,11 +1,13 @@ #ifndef PRIMARY_KEY_ATTRIBUTE_HPP #define PRIMARY_KEY_ATTRIBUTE_HPP +#include + namespace matador::utils { class primary_key_attribute final { public: /** - * Creates primary_key_attribute instance + * Creates a primary_key_attribute instance * with size 0 (zero). */ primary_key_attribute() = default;