introduced execute_result
This commit is contained in:
@@ -130,14 +130,14 @@ public:
|
||||
|
||||
[[nodiscard]] utils::result<sql::query_result<sql::record>, utils::error>
|
||||
fetch_all(const sql::query_context &q) const;
|
||||
[[nodiscard]] utils::result<size_t, utils::error> execute(const std::string &sql) const;
|
||||
[[nodiscard]] utils::result<sql::execute_result, utils::error> execute(const std::string &sql) const;
|
||||
|
||||
[[nodiscard]] std::vector<object::attribute> describe_table(const std::string &table_name) const;
|
||||
[[nodiscard]] bool table_exists(const std::string &table_name) const;
|
||||
|
||||
[[nodiscard]] utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> fetch(
|
||||
const sql::query_context &ctx) const override;
|
||||
[[nodiscard]] utils::result<size_t, utils::error> execute(const sql::query_context &ctx) const override;
|
||||
[[nodiscard]] utils::result<sql::execute_result, utils::error> execute(const sql::query_context &ctx) const override;
|
||||
[[nodiscard]] utils::result<sql::statement, utils::error> prepare(const sql::query_context &ctx) override;
|
||||
[[nodiscard]] std::string str(const sql::query_context &ctx) const override;
|
||||
[[nodiscard]] const sql::dialect &dialect() const override;
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
namespace matador::sql {
|
||||
class executor;
|
||||
class statement;
|
||||
struct execute_result;
|
||||
struct query_context;
|
||||
}
|
||||
|
||||
@@ -18,7 +19,7 @@ class executable_query : public query_intermediate {
|
||||
public:
|
||||
using query_intermediate::query_intermediate;
|
||||
|
||||
[[nodiscard]] utils::result<size_t, utils::error> execute(const sql::executor &exec) const;
|
||||
[[nodiscard]] utils::result<sql::execute_result, utils::error> execute(const sql::executor &exec) const;
|
||||
[[nodiscard]] utils::result<sql::statement, utils::error> prepare(sql::executor &exec) const;
|
||||
[[nodiscard]] sql::query_context compile(const sql::executor &exec) const;
|
||||
[[nodiscard]] std::string str(const sql::executor &exec) const;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -14,8 +14,8 @@ public:
|
||||
*/
|
||||
primary_key_attribute() = default;
|
||||
/**
|
||||
* Creates primary_key_attribute instance
|
||||
* with given size.
|
||||
* Creates a primary_key_attribute instance with a
|
||||
* given size.
|
||||
*
|
||||
* @param size Size of the attribute
|
||||
*/
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
[[nodiscard]] generator_type generator() const;
|
||||
private:
|
||||
size_t size_ = 0;
|
||||
generator_type generator_ = generator_type::MANUALLY;
|
||||
generator_type generator_ = generator_type::Manually;
|
||||
};
|
||||
|
||||
const primary_key_attribute default_pk_attributes {};
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
|
||||
namespace matador::utils {
|
||||
enum class generator_type {
|
||||
MANUALLY,
|
||||
AUTO,
|
||||
IDENTITY,
|
||||
SEQUENCE,
|
||||
TABLE
|
||||
Manually, /**< User sets the primary key value manually. */
|
||||
Auto, /**< Matador chooses the best generator type depending on the underlying dbms. */
|
||||
Identity, /**< DBMS automatically generates the primary key value. */
|
||||
Sequence, /**< DBMS automatically generates the primary key value by using a sequence table. */
|
||||
Table /**< DBMS automatically generates the primary key value by using a table. */
|
||||
};
|
||||
}
|
||||
#endif //PRIMARY_KEY_GENERATOR_TYPE_HPP
|
||||
|
||||
Reference in New Issue
Block a user