pass query_context to execute

This commit is contained in:
Sascha Kühl 2026-02-10 13:17:05 +01:00
parent 99677b0e21
commit 40b163ac39
4 changed files with 9 additions and 9 deletions

View File

@ -31,7 +31,7 @@ public:
[[nodiscard]] utils::result<utils::version, utils::error> client_version() const override; [[nodiscard]] utils::result<utils::version, utils::error> client_version() const override;
[[nodiscard]] utils::result<utils::version, utils::error> server_version() const override; [[nodiscard]] utils::result<utils::version, utils::error> server_version() const override;
utils::result<sql::execute_result, utils::error> execute(const std::string &stmt) override; utils::result<sql::execute_result, utils::error> execute(const sql::query_context &context) override;
utils::result<std::unique_ptr<sql::statement_impl>, utils::error> prepare(const sql::query_context &context) override; utils::result<std::unique_ptr<sql::statement_impl>, utils::error> prepare(const sql::query_context &context) override;
utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> fetch(const sql::query_context &context) override; utils::result<std::unique_ptr<sql::query_result_impl>, utils::error> fetch(const sql::query_context &context) override;

View File

@ -142,11 +142,11 @@ utils::result<std::unique_ptr<sql::statement_impl>, utils::error> postgres_conne
return utils::ok(std::move(s)); return utils::ok(std::move(s));
} }
utils::result<sql::execute_result, utils::error> postgres_connection::execute(const std::string &stmt) { utils::result<sql::execute_result, utils::error> postgres_connection::execute(const sql::query_context &context) {
PGresult *res = PQexec(conn_, stmt.c_str()); PGresult *res = PQexec(conn_, context.sql.c_str());
if (const auto status = PQresultStatus(res); status != PGRES_COMMAND_OK && status != PGRES_TUPLES_OK) { 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)); return utils::failure(make_error(sql::error_code::FAILURE, res, conn_, "Failed to execute", context.sql));
} }
const size_t affected_rows = utils::to<size_t>(PQcmdTuples(res)); const size_t affected_rows = utils::to<size_t>(PQcmdTuples(res));

View File

@ -35,7 +35,7 @@ public:
[[nodiscard]] virtual utils::result<utils::version, utils::error> client_version() const = 0; [[nodiscard]] virtual utils::result<utils::version, utils::error> client_version() const = 0;
[[nodiscard]] virtual utils::result<utils::version, utils::error> server_version() const = 0; [[nodiscard]] virtual utils::result<utils::version, utils::error> server_version() const = 0;
virtual utils::result<execute_result, utils::error> execute(const std::string &stmt) = 0; virtual utils::result<execute_result, utils::error> execute(const query_context &context) = 0;
virtual utils::result<std::unique_ptr<query_result_impl>, utils::error> fetch(const query_context &context) = 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; virtual utils::result<std::unique_ptr<statement_impl>, utils::error> prepare(const query_context &context) = 0;

View File

@ -125,7 +125,7 @@ std::string connection::type() const {
} }
utils::result<void, utils::error> connection::begin() const { utils::result<void, utils::error> connection::begin() const {
const auto res = connection_->execute(dialect().token_at(dialect_token::Begin)); const auto res = connection_->execute({dialect().begin()});
if (res.is_error()) { if (res.is_error()) {
return utils::failure(res.err()); return utils::failure(res.err());
} }
@ -134,7 +134,7 @@ utils::result<void, utils::error> connection::begin() const {
} }
utils::result<void, utils::error> connection::commit() const { utils::result<void, utils::error> connection::commit() const {
const auto res = connection_->execute(dialect().token_at(dialect_token::Commit)); const auto res = connection_->execute({dialect().commit()});
if (res.is_error()) { if (res.is_error()) {
return utils::failure(res.err()); return utils::failure(res.err());
} }
@ -143,7 +143,7 @@ utils::result<void, utils::error> connection::commit() const {
} }
utils::result<void, utils::error> connection::rollback() const { utils::result<void, utils::error> connection::rollback() const {
const auto res = connection_->execute(dialect().token_at(dialect_token::Rollback)); const auto res = connection_->execute({dialect().rollback()});
if (res.is_error()) { if (res.is_error()) {
return utils::failure(res.err()); return utils::failure(res.err());
} }
@ -178,7 +178,7 @@ utils::result<std::unique_ptr<query_result_impl>, utils::error> connection::fetc
utils::result<execute_result, utils::error> connection::execute(const query_context& ctx) const { utils::result<execute_result, utils::error> connection::execute(const query_context& ctx) const {
logger_->on_execute(ctx.sql); logger_->on_execute(ctx.sql);
std::cout << ctx.sql << std::endl; std::cout << ctx.sql << std::endl;
return connection_->execute(ctx.sql); return connection_->execute(ctx);
} }
utils::result<statement, utils::error> connection::prepare(const query_context &ctx) { utils::result<statement, utils::error> connection::prepare(const query_context &ctx) {