moved session to namespace query and move basic_schema::initialize to session constructor
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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; }
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user