added session context and implemented the executor interface for session

This commit is contained in:
Sascha Kühl
2025-08-14 15:48:21 +02:00
parent a32330ef5b
commit 843d125b99
19 changed files with 131 additions and 100 deletions
+3 -12
View File
@@ -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;
};