collection_resolver progress
This commit is contained in:
@@ -85,13 +85,13 @@ void basic_schema::initialize_executor(sql::executor &exec) const {
|
||||
auto factory = std::make_shared<sql::producer_resolver_factory>();
|
||||
for (const auto &[key, producer] : resolver_producers_) {
|
||||
auto resolver = producer->produce(exec);
|
||||
exec.resolver_factory()->register_object_resolver(std::move(resolver));
|
||||
exec.resolver()->register_object_resolver(std::move(resolver));
|
||||
}
|
||||
|
||||
auto collection_factory = std::make_shared<sql::producer_collection_resolver_factory>();
|
||||
for (const auto &[key, producer] : collection_resolver_producers_) {
|
||||
auto resolver = producer->produce(exec);
|
||||
// exec.resolver_factory()->register_collection_resolver(std::move(resolver));
|
||||
exec.resolver()->register_collection_resolver(std::move(resolver));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ utils::result<sql::query_result<sql::record>, utils::error> fetchable_query::fet
|
||||
utils::result<std::optional<sql::record>, utils::error> fetchable_query::fetch_one(const sql::executor &exec) const {
|
||||
query_builder compiler;
|
||||
auto ctx = compiler.compile(*context_, exec.dialect(), std::nullopt);
|
||||
ctx.resolver_factory = exec.resolver_factory();
|
||||
ctx.resolver = exec.resolver();
|
||||
auto result = exec.fetch(ctx);
|
||||
if (!result.is_ok()) {
|
||||
return utils::failure(result.err());
|
||||
@@ -69,13 +69,13 @@ sql::query_context fetchable_query::compile(const sql::dialect &d) const {
|
||||
|
||||
utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> fetchable_query::fetch(const sql::executor &exec) const {
|
||||
auto ctx = compile(exec.dialect());
|
||||
ctx.resolver_factory = exec.resolver_factory();
|
||||
ctx.resolver = exec.resolver();
|
||||
return exec.fetch(ctx);
|
||||
}
|
||||
|
||||
utils::result<sql::statement, utils::error> fetchable_query::prepare(sql::executor &exec) const {
|
||||
auto ctx = compile(exec.dialect());
|
||||
ctx.resolver_factory = exec.resolver_factory();
|
||||
ctx.resolver = exec.resolver();
|
||||
return exec.prepare(ctx);
|
||||
}
|
||||
|
||||
|
||||
@@ -9,12 +9,12 @@ detail::pk_reader::pk_reader(query_result_reader &reader)
|
||||
|
||||
query_result_impl::query_result_impl(std::unique_ptr<query_result_reader> &&reader,
|
||||
std::vector<object::attribute> prototype,
|
||||
const std::shared_ptr<object::object_resolver_factory>& resolver_factory,
|
||||
const std::shared_ptr<sql::resolver_service>& resolver,
|
||||
const size_t column_index)
|
||||
: column_index_(column_index)
|
||||
, prototype_(std::move(prototype))
|
||||
, reader_(std::move(reader))
|
||||
, resolver_factory_(resolver_factory)
|
||||
, resolver_(resolver)
|
||||
, id_reader_(*reader_)
|
||||
, pk_reader_(*reader_) {
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user