proxy lazy resolve progress

This commit is contained in:
Sascha Kühl
2025-08-19 18:07:27 +02:00
parent 18d21eb1c6
commit 6b24a0e413
5 changed files with 21 additions and 19 deletions
+2 -2
View File
@@ -59,7 +59,7 @@ public:
return utils::failure(make_error(error_code::UnknownType, "Failed to determine requested type."));
}
session_query_builder eqb(*schema_);
session_query_builder eqb(*schema_, *this);
auto data = eqb.build<Type>(pk);
if (!data.is_ok()) {
return utils::failure(make_error(error_code::FailedToBuildQuery, "Failed to build query for type " + info->get().name() + "."));
@@ -87,7 +87,7 @@ public:
return utils::failure(make_error(error_code::UnknownType, "Failed to determine requested type."));
}
session_query_builder eqb(*schema_);
session_query_builder eqb(*schema_, *this);
auto data = eqb.build<Type>();
if (!data.is_ok()) {
return utils::failure(make_error(error_code::FailedToBuildQuery, "Failed to build query for type " + info->get().name() + "."));
@@ -7,6 +7,7 @@
#include "matador/query/query.hpp"
#include "matador/sql/connection.hpp"
#include "matador/sql/executor.hpp"
#include "matador/object/join_columns_collector.hpp"
#include "matador/object/schema.hpp"
@@ -28,11 +29,11 @@ struct entity_query_data {
std::unique_ptr<query::basic_condition> where_clause{};
};
class session_query_builder final
{
class session_query_builder final {
public:
explicit session_query_builder(const object::schema &scm)
: schema_(scm) {}
session_query_builder(const object::schema &scm, sql::executor &exec)
: schema_(scm)
, executor_(exec){}
template<class EntityType, typename PrimaryKeyType>
utils::result<entity_query_data, query_build_error> build(const PrimaryKeyType &pk) {
@@ -250,6 +251,7 @@ private:
unsigned int column_index{0};
unsigned int table_index{0};
object::join_columns_collector join_columns_collector_;
sql::executor &executor_;
};
template<class Pointer>
@@ -287,7 +289,7 @@ void session_query_builder::on_foreign_object(const char *id, Pointer &, const u
const auto result = matador::query::query::select<typename Pointer::value_type>(schema_)
.from(*foreign_table)
.where(sql::column(foreign_table, id, "") == _)
.com;
.prepare(executor_);
}
}