introduced execute_result

This commit is contained in:
Sascha Kühl
2026-02-10 11:57:09 +01:00
parent d9f9712487
commit 99677b0e21
28 changed files with 158 additions and 170 deletions
+2 -3
View File
@@ -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;
+11
View File
@@ -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
+2 -1
View File
@@ -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>
+1 -1
View File
@@ -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