#ifndef EXECUTOR_HPP #define EXECUTOR_HPP #include "matador/utils/error.hpp" #include "matador/utils/result.hpp" #include namespace matador::sql { struct query_context; class query_result_impl; class statement; class executor { public: virtual ~executor() = default; [[nodiscard]] virtual const class dialect& dialect() const = 0; [[nodiscard]] virtual utils::result execute(const query_context &ctx) const = 0; [[nodiscard]] virtual utils::result, utils::error> fetch(const query_context &ctx) const = 0; [[nodiscard]] virtual utils::result prepare(const query_context &ctx) = 0; [[nodiscard]] virtual std::string str(const query_context &ctx) const = 0; }; } #endif //EXECUTOR_HPP