29 lines
790 B
C++
29 lines
790 B
C++
#ifndef EXECUTOR_HPP
|
|
#define EXECUTOR_HPP
|
|
|
|
#include "matador/utils/error.hpp"
|
|
#include "matador/utils/result.hpp"
|
|
|
|
#include <memory>
|
|
|
|
namespace matador::sql {
|
|
|
|
struct query_context;
|
|
class query_result_impl;
|
|
class statement;
|
|
|
|
class executor {
|
|
public:
|
|
virtual ~executor();
|
|
|
|
[[nodiscard]] virtual const class dialect& dialect() const = 0;
|
|
[[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) const = 0;
|
|
[[nodiscard]] virtual std::string str(const query_context &ctx) const = 0;
|
|
};
|
|
|
|
}
|
|
|
|
#endif //EXECUTOR_HPP
|