introduced execute_result
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "matador/sql/abstract_sql_logger.hpp"
|
||||
#include "matador/sql/connection_info.hpp"
|
||||
#include "matador/sql/execute_result.hpp"
|
||||
#include "matador/sql/executor.hpp"
|
||||
#include "matador/sql/resolver_service.hpp"
|
||||
#include "matador/sql/statement.hpp"
|
||||
@@ -134,10 +135,8 @@ public:
|
||||
[[nodiscard]] utils::result<bool, utils::error> exists(const std::string &schema_name, const std::string &table_name) const;
|
||||
[[nodiscard]] utils::result<bool, utils::error> exists(const std::string &table_name) const;
|
||||
|
||||
[[nodiscard]] utils::result<size_t, utils::error> execute(const std::string &sql) const;
|
||||
|
||||
[[nodiscard]] utils::result<std::unique_ptr<query_result_impl>, utils::error> fetch(const query_context &ctx) const override;
|
||||
[[nodiscard]] utils::result<size_t, utils::error> execute(const query_context &ctx) const override;
|
||||
[[nodiscard]] utils::result<execute_result, utils::error> execute(const query_context &ctx) const override;
|
||||
[[nodiscard]] utils::result<statement, utils::error> prepare(const query_context &ctx) override;
|
||||
[[nodiscard]] std::string str( const query_context& ctx ) const override;
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
#ifndef MATADOR_EXECUTE_RESULT_HPP
|
||||
#define MATADOR_EXECUTE_RESULT_HPP
|
||||
#include <vector>
|
||||
|
||||
namespace matador::sql {
|
||||
struct execute_result {
|
||||
size_t affected_rows{};
|
||||
std::vector<long long> insert_ids{};
|
||||
};
|
||||
}
|
||||
#endif // MATADOR_EXECUTE_RESULT_HPP
|
||||
@@ -11,6 +11,7 @@
|
||||
namespace matador::sql {
|
||||
|
||||
struct query_context;
|
||||
struct execute_result;
|
||||
class query_result_impl;
|
||||
class statement;
|
||||
|
||||
@@ -18,7 +19,7 @@ class executor {
|
||||
public:
|
||||
virtual ~executor() = default;
|
||||
[[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<execute_result, 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;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "matador/object/attribute.hpp"
|
||||
|
||||
#include "matador/sql/connection_info.hpp"
|
||||
#include "matador/sql/query_context.hpp"
|
||||
#include "matador/sql/execute_result.hpp"
|
||||
|
||||
#include "matador/utils/error.hpp"
|
||||
#include "matador/utils/result.hpp"
|
||||
@@ -18,6 +18,7 @@ using blob_type_t = std::vector<unsigned char>;
|
||||
|
||||
namespace matador::sql {
|
||||
|
||||
struct query_context;
|
||||
class query_result_impl;
|
||||
class statement_impl;
|
||||
|
||||
@@ -34,7 +35,7 @@ public:
|
||||
[[nodiscard]] virtual utils::result<utils::version, utils::error> client_version() const = 0;
|
||||
[[nodiscard]] virtual utils::result<utils::version, utils::error> server_version() const = 0;
|
||||
|
||||
virtual utils::result<size_t, utils::error> execute(const std::string &stmt) = 0;
|
||||
virtual utils::result<execute_result, utils::error> execute(const std::string &stmt) = 0;
|
||||
virtual utils::result<std::unique_ptr<query_result_impl>, utils::error> fetch(const query_context &context) = 0;
|
||||
virtual utils::result<std::unique_ptr<statement_impl>, utils::error> prepare(const query_context &context) = 0;
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include <memory>
|
||||
|
||||
namespace matador::sql {
|
||||
struct execute_result;
|
||||
class query_result_impl;
|
||||
class sql_error;
|
||||
|
||||
@@ -23,7 +24,7 @@ protected:
|
||||
public:
|
||||
virtual ~statement_impl() = default;
|
||||
|
||||
virtual utils::result<size_t, utils::error> execute(const parameter_binder& bindings) = 0;
|
||||
virtual utils::result<execute_result, utils::error> execute(const parameter_binder& bindings) = 0;
|
||||
virtual utils::result<std::unique_ptr<query_result_impl>, utils::error> fetch(const parameter_binder& bindings) = 0;
|
||||
|
||||
template < class Type >
|
||||
|
||||
@@ -12,7 +12,7 @@ protected:
|
||||
public:
|
||||
virtual ~statement_proxy() = default;
|
||||
|
||||
virtual utils::result<size_t, utils::error> execute(parameter_binder& bindings) = 0;
|
||||
virtual utils::result<execute_result, utils::error> execute(parameter_binder& bindings) = 0;
|
||||
virtual utils::result<std::unique_ptr<query_result_impl>, utils::error> fetch(parameter_binder& bindings) = 0;
|
||||
|
||||
template<class Type>
|
||||
|
||||
@@ -71,7 +71,7 @@ public:
|
||||
*
|
||||
* @return The number of affected rows
|
||||
*/
|
||||
[[nodiscard]] utils::result<size_t, utils::error> execute() const;
|
||||
[[nodiscard]] utils::result<execute_result, utils::error> execute() const;
|
||||
|
||||
/**
|
||||
* Fetches the result of the prepared
|
||||
|
||||
Reference in New Issue
Block a user