added collection, collection proxy and collection resolver implementations

This commit is contained in:
2026-01-18 22:11:51 +01:00
parent 4c899ae2f2
commit 623a64b610
15 changed files with 214 additions and 44 deletions
@@ -129,6 +129,7 @@ public:
auto resolver = resolver_factory_->resolver<value_type>();
if (attr.fetch() == utils::fetch_type::Lazy) {
// pk_reader_.read(*id, column_index_++);
} else {
const auto ti = std::type_index(typeid(value_type));
@@ -10,7 +10,7 @@ class executor;
class resolver_producer {
public:
virtual ~resolver_producer() = default;
virtual std::shared_ptr<object::abstract_object_resolver> produce(executor &exec) = 0;
virtual std::shared_ptr<object::abstract_type_resolver> produce(executor &exec) = 0;
[[nodiscard]] const std::type_index& type() const;
@@ -5,17 +5,19 @@
#include "matador/sql/internal/resolver_producer.hpp"
#include <unordered_map>
namespace matador::sql {
class executor;
class producer_resolver_factory : public object::object_resolver_factory {
public:
std::shared_ptr<object::abstract_object_resolver> acquire_resolver(const std::type_index &type) override;
void register_resolver(std::shared_ptr<object::abstract_object_resolver> &&resolver) override;
std::shared_ptr<object::abstract_type_resolver> acquire_resolver(const std::type_index &type) override;
void register_resolver(std::shared_ptr<object::abstract_type_resolver> &&resolver) override;
private:
std::unordered_map<std::type_index, std::shared_ptr<object::abstract_object_resolver>> resolvers_;
std::unordered_map<std::type_index, std::shared_ptr<object::abstract_type_resolver>> resolvers_;
};
}
#endif //MATADOR_RESOLVER_FACTORY_HPP