added session context and implemented the executor interface for session
This commit is contained in:
@@ -16,7 +16,7 @@ class connection_impl;
|
||||
/**
|
||||
* @brief The connection class represents a connection to a database.
|
||||
*/
|
||||
class connection final : public executor, public prepared_executor {
|
||||
class connection final : public executor {
|
||||
public:
|
||||
using logger_ptr = std::shared_ptr<abstract_sql_logger>;
|
||||
/**
|
||||
|
||||
@@ -12,22 +12,13 @@ struct query_context;
|
||||
class query_result_impl;
|
||||
class statement;
|
||||
|
||||
class dialect_executor_mixin {
|
||||
class executor {
|
||||
public:
|
||||
virtual ~dialect_executor_mixin() = default;
|
||||
virtual ~executor() = default;
|
||||
[[nodiscard]] virtual const class dialect& dialect() const = 0;
|
||||
};
|
||||
|
||||
class prepared_executor : public dialect_executor_mixin {
|
||||
public:
|
||||
[[nodiscard]] virtual utils::result<statement, utils::error> prepare(const query_context &ctx) = 0;
|
||||
};
|
||||
|
||||
class executor : public dialect_executor_mixin {
|
||||
public:
|
||||
[[nodiscard]] virtual utils::result<size_t, utils::error> execute(const query_context &ctx) const = 0;
|
||||
[[nodiscard]] virtual utils::result<std::unique_ptr<query_result_impl>, utils::error> fetch(const query_context &ctx) const = 0;
|
||||
|
||||
[[nodiscard]] virtual utils::result<statement, utils::error> prepare(const query_context &ctx) = 0;
|
||||
[[nodiscard]] virtual std::string str(const query_context &ctx) const = 0;
|
||||
};
|
||||
|
||||
|
||||
@@ -123,6 +123,8 @@ public:
|
||||
|
||||
[[nodiscard]] std::string sql() const;
|
||||
|
||||
[[nodiscard]] utils::result<std::unique_ptr<query_result_impl>, utils::error> fetch_internal() const;
|
||||
|
||||
private:
|
||||
template<class Type>
|
||||
friend class detail::identifier_binder;
|
||||
|
||||
@@ -68,6 +68,7 @@ public:
|
||||
return bus_.subscribe<EventType>(handler);
|
||||
}
|
||||
|
||||
connection_pool& pool() const;
|
||||
|
||||
private:
|
||||
size_t max_size_{};
|
||||
|
||||
Reference in New Issue
Block a user