introduced execute_result
This commit is contained in:
@@ -142,18 +142,18 @@ utils::result<std::unique_ptr<sql::statement_impl>, utils::error> postgres_conne
|
||||
return utils::ok(std::move(s));
|
||||
}
|
||||
|
||||
utils::result<size_t, utils::error> postgres_connection::execute(const std::string &stmt) {
|
||||
utils::result<sql::execute_result, utils::error> postgres_connection::execute(const std::string &stmt) {
|
||||
PGresult *res = PQexec(conn_, stmt.c_str());
|
||||
|
||||
if (const auto status = PQresultStatus(res); status != PGRES_COMMAND_OK && status != PGRES_TUPLES_OK) {
|
||||
return utils::failure(make_error(sql::error_code::FAILURE, res, conn_, "Failed to execute", stmt));
|
||||
}
|
||||
|
||||
const auto affected_rows = utils::to<size_t>(PQcmdTuples(res));
|
||||
const size_t affected_rows = utils::to<size_t>(PQcmdTuples(res));
|
||||
|
||||
PQclear(res);
|
||||
|
||||
return utils::ok(static_cast<size_t>(affected_rows));
|
||||
return utils::ok(sql::execute_result{affected_rows});
|
||||
}
|
||||
|
||||
utils::basic_type oid2type(const Oid oid) {
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
#include "postgres_statement.hpp"
|
||||
|
||||
#include "matador/sql/execute_result.hpp"
|
||||
#include "postgres_error.hpp"
|
||||
#include "postgres_parameter_binder.h"
|
||||
#include "postgres_result_reader.hpp"
|
||||
@@ -16,7 +18,7 @@ postgres_statement::~postgres_statement() {
|
||||
PQclear(res_);
|
||||
}
|
||||
|
||||
utils::result<size_t, utils::error> postgres_statement::execute(const sql::parameter_binder& bindings) {
|
||||
utils::result<sql::execute_result, utils::error> postgres_statement::execute(const sql::parameter_binder& bindings) {
|
||||
const auto* postgres_bindings = dynamic_cast<const postgres_parameter_binder*>(&bindings);
|
||||
if (!postgres_bindings) {
|
||||
return utils::failure(utils::error(sql::error_code::EXECUTE_FAILED, "Failed to cast bindings to postgres bindings"));
|
||||
@@ -40,7 +42,7 @@ utils::result<size_t, utils::error> postgres_statement::execute(const sql::param
|
||||
|
||||
PQclear(res);
|
||||
|
||||
return utils::ok(value);
|
||||
return utils::ok(sql::execute_result{value});
|
||||
}
|
||||
|
||||
utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> postgres_statement::fetch(const sql::parameter_binder& bindings) {
|
||||
|
||||
Reference in New Issue
Block a user