moved session to namespace query and move basic_schema::initialize to session constructor

This commit is contained in:
2026-04-23 16:01:44 +02:00
parent a34a3dc266
commit 3a82f4891a
30 changed files with 337 additions and 367 deletions
@@ -3,14 +3,22 @@
#include "matador/object/abstract_collection_resolver.hpp"
#include "matador/sql/query_context.hpp"
#include "matador/utils/error.hpp"
#include "matador/utils/result.hpp"
#include <memory>
namespace matador::sql {
class executor;
class dialect;
class statement;
class resolver_service;
class collection_resolver_producer {
public:
virtual ~collection_resolver_producer() = default;
virtual std::shared_ptr<object::abstract_collection_resolver> produce(executor &exec) = 0;
virtual utils::result<query_context, utils::error> build_query(const dialect& d) = 0;
virtual std::shared_ptr<object::abstract_collection_resolver> produce(statement&& stmt, const resolver_service& rs) = 0;
[[nodiscard]] const std::type_index& root_type() const;
[[nodiscard]] const std::type_index& type() const;
@@ -3,14 +3,21 @@
#include "matador/object/abstract_type_resolver.hpp"
#include "matador/sql/query_context.hpp"
#include "matador/utils/error.hpp"
#include "matador/utils/result.hpp"
#include <memory>
namespace matador::sql {
class executor;
class dialect;
class statement;
class object_resolver_producer {
public:
virtual ~object_resolver_producer() = default;
virtual std::shared_ptr<object::abstract_type_resolver> produce(executor &exec) = 0;
virtual utils::result<query_context, utils::error> build_query(const dialect& d) = 0;
virtual std::shared_ptr<object::abstract_type_resolver> produce(statement&& stmt) = 0;
[[nodiscard]] const std::type_index& type() const;
-10
View File
@@ -29,12 +29,6 @@ enum class sql_command {
AlterSchema
};
enum class return_mode {
None,
GeneratedKeys,
Rows
};
struct query_context {
std::string sql;
size_t sql_hash{};
@@ -48,14 +42,10 @@ struct query_context {
// Data for resolving query result
std::shared_ptr<resolver_service> resolver{};
std::type_index result_type = typeid(void);
return_mode mode = return_mode::None;
[[nodiscard]] bool is_ddl() const { return command == sql_command::Create || command == sql_command::Alter; }
[[nodiscard]] bool is_dml() const { return command == sql_command::Insert || command == sql_command::Update || command == sql_command::Delete; }
[[nodiscard]] bool is_query() const { return command == sql_command::Select; }
[[nodiscard]] bool expects_rows() const { return mode == return_mode::Rows; }
[[nodiscard]] bool expects_generated_keys() const { return mode == return_mode::GeneratedKeys; }
};
}