fixed linux build for relation completer
This commit is contained in:
parent
27e2c51175
commit
1b2847696d
|
|
@ -72,7 +72,7 @@ using namespace work::models;
|
||||||
int main() {
|
int main() {
|
||||||
const object::schema schema("Administration");
|
const object::schema schema("Administration");
|
||||||
|
|
||||||
sql::connection_pool<sql::connection> pool("postgres://news:news@127.0.0.1:15432/matador", 4);
|
sql::connection_pool<sql::connection> pool("postgres://test:test123!@127.0.0.1:5432/matador", 4);
|
||||||
|
|
||||||
orm::session ses(pool);
|
orm::session ses(pool);
|
||||||
|
|
||||||
|
|
@ -91,8 +91,8 @@ int main() {
|
||||||
.and_then([&ses] { return ses.attach<jobs::Payload>("payloads"); })
|
.and_then([&ses] { return ses.attach<jobs::Payload>("payloads"); })
|
||||||
.and_then([&ses] { return ses.attach<jobs::IdPayload, jobs::Payload>("id_list_payloads"); })
|
.and_then([&ses] { return ses.attach<jobs::IdPayload, jobs::Payload>("id_list_payloads"); })
|
||||||
.and_then([&ses] { return ses.attach<jobs::IdListPayload, jobs::Payload>("id_payloads"); })
|
.and_then([&ses] { return ses.attach<jobs::IdListPayload, jobs::Payload>("id_payloads"); })
|
||||||
.and_then([&ses] { return ses.attach<jobs::Task>("tasks"); });
|
.and_then([&ses] { return ses.attach<jobs::Task>("tasks"); })
|
||||||
// .and_then([&ses] { return ses.create_schema(); });
|
.and_then([&ses] { return ses.create_schema(); });
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
std::cout << "error: " << result.err().message() << std::endl;
|
std::cout << "error: " << result.err().message() << std::endl;
|
||||||
|
|
|
||||||
|
|
@ -44,12 +44,12 @@ public:
|
||||||
template<class ForeignPointerType>
|
template<class ForeignPointerType>
|
||||||
void on_belongs_to(const char *id, ForeignPointerType &/*obj*/, const utils::foreign_attributes &/*attr*/);
|
void on_belongs_to(const char *id, ForeignPointerType &/*obj*/, const utils::foreign_attributes &/*attr*/);
|
||||||
template<class ForeignPointerType>
|
template<class ForeignPointerType>
|
||||||
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<class CollectionType>
|
template<class CollectionType>
|
||||||
void on_has_many(const char *id, CollectionType &, const char *join_column, const utils::foreign_attributes &attr, std::enable_if_t<is_object_ptr<typename CollectionType::value_type>::value> * = nullptr);
|
void on_has_many(const char *id, CollectionType &, const char *join_column, const utils::foreign_attributes &attr, std::enable_if_t<is_object_ptr<typename CollectionType::value_type>::value> * = nullptr);
|
||||||
template<class CollectionType>
|
template<class CollectionType>
|
||||||
void on_has_many(const char *id, CollectionType &, const char *join_column, const utils::foreign_attributes &attr, std::enable_if_t<!is_object_ptr<typename CollectionType::value_type>::value> * = nullptr) {}
|
void on_has_many(const char * /*id*/, CollectionType &, const char * /*join_column*/, const utils::foreign_attributes & /*attr*/, std::enable_if_t<!is_object_ptr<typename CollectionType::value_type>::value> * = nullptr) {}
|
||||||
|
|
||||||
template<class CollectionType>
|
template<class CollectionType>
|
||||||
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);
|
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<class ForeignPointerType>
|
template<class ForeignPointerType>
|
||||||
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<typename ForeignPointerType::value_type>();
|
attach_node<typename ForeignPointerType::value_type>();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class CollectionType>
|
template<class CollectionType>
|
||||||
void foreign_node_completer::on_has_many( const char* id, CollectionType&, const char* join_column, const utils::foreign_attributes& attr, std::enable_if_t<is_object_ptr<typename CollectionType::value_type>::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<is_object_ptr<typename CollectionType::value_type>::value>* ) {
|
||||||
attach_node<typename CollectionType::value_type::value_type>();
|
attach_node<typename CollectionType::value_type::value_type>();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class CollectionType>
|
template<class CollectionType>
|
||||||
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<typename CollectionType::value_type::value_type>();
|
attach_node<typename CollectionType::value_type::value_type>();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class CollectionType>
|
template<class CollectionType>
|
||||||
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<typename CollectionType::value_type::value_type>();
|
attach_node<typename CollectionType::value_type::value_type>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,8 @@ private:
|
||||||
public:
|
public:
|
||||||
explicit shadow_schema(object::schema& s);
|
explicit shadow_schema(object::schema& s);
|
||||||
|
|
||||||
schema& schema() const;
|
object::schema& schema() const;
|
||||||
bool schema_contains(const std::type_index& ti) const;
|
[[nodiscard]] bool schema_contains(const std::type_index& ti) const;
|
||||||
[[nodiscard]] utils::result<node_ptr, utils::error> find_node(const std::type_index &type_index) const;
|
[[nodiscard]] utils::result<node_ptr, utils::error> find_node(const std::type_index &type_index) const;
|
||||||
[[nodiscard]] utils::result<node_ptr, utils::error> attach_node(const std::shared_ptr<schema_node> &node) const;
|
[[nodiscard]] utils::result<node_ptr, utils::error> attach_node(const std::shared_ptr<schema_node> &node) const;
|
||||||
[[nodiscard]] utils::result<void, utils::error> detach_node(const std::shared_ptr<schema_node> &node) const;
|
[[nodiscard]] utils::result<void, utils::error> detach_node(const std::shared_ptr<schema_node> &node) const;
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,10 @@ public:
|
||||||
auto &conn = connection_repo_.back();
|
auto &conn = connection_repo_.back();
|
||||||
idle_connections_.emplace(conn.first, &conn);
|
idle_connections_.emplace(conn.first, &conn);
|
||||||
// Todo: handle result
|
// 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;
|
--count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,13 @@
|
||||||
#ifndef PRIMARY_KEY_ATTRIBUTE_HPP
|
#ifndef PRIMARY_KEY_ATTRIBUTE_HPP
|
||||||
#define PRIMARY_KEY_ATTRIBUTE_HPP
|
#define PRIMARY_KEY_ATTRIBUTE_HPP
|
||||||
|
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
namespace matador::utils {
|
namespace matador::utils {
|
||||||
class primary_key_attribute final {
|
class primary_key_attribute final {
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* Creates primary_key_attribute instance
|
* Creates a primary_key_attribute instance
|
||||||
* with size 0 (zero).
|
* with size 0 (zero).
|
||||||
*/
|
*/
|
||||||
primary_key_attribute() = default;
|
primary_key_attribute() = default;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue