From 40b163ac3937451e993f61d0bff9669ef1696d80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sascha=20K=C3=BChl?= Date: Tue, 10 Feb 2026 13:17:05 +0100 Subject: [PATCH] pass query_context to execute --- backends/postgres/include/postgres_connection.hpp | 2 +- backends/postgres/src/postgres_connection.cpp | 6 +++--- include/matador/sql/interface/connection_impl.hpp | 2 +- source/orm/sql/connection.cpp | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/backends/postgres/include/postgres_connection.hpp b/backends/postgres/include/postgres_connection.hpp index 0044ef1..0691271 100644 --- a/backends/postgres/include/postgres_connection.hpp +++ b/backends/postgres/include/postgres_connection.hpp @@ -31,7 +31,7 @@ public: [[nodiscard]] utils::result client_version() const override; [[nodiscard]] utils::result server_version() const override; - utils::result execute(const std::string &stmt) override; + utils::result execute(const sql::query_context &context) override; utils::result, utils::error> prepare(const sql::query_context &context) override; utils::result, utils::error> fetch(const sql::query_context &context) override; diff --git a/backends/postgres/src/postgres_connection.cpp b/backends/postgres/src/postgres_connection.cpp index 925e822..9c00f99 100644 --- a/backends/postgres/src/postgres_connection.cpp +++ b/backends/postgres/src/postgres_connection.cpp @@ -142,11 +142,11 @@ utils::result, utils::error> postgres_conne return utils::ok(std::move(s)); } -utils::result postgres_connection::execute(const std::string &stmt) { - PGresult *res = PQexec(conn_, stmt.c_str()); +utils::result postgres_connection::execute(const sql::query_context &context) { + PGresult *res = PQexec(conn_, context.sql.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)); + return utils::failure(make_error(sql::error_code::FAILURE, res, conn_, "Failed to execute", context.sql)); } const size_t affected_rows = utils::to(PQcmdTuples(res)); diff --git a/include/matador/sql/interface/connection_impl.hpp b/include/matador/sql/interface/connection_impl.hpp index 0bd5be7..1346b0b 100644 --- a/include/matador/sql/interface/connection_impl.hpp +++ b/include/matador/sql/interface/connection_impl.hpp @@ -35,7 +35,7 @@ public: [[nodiscard]] virtual utils::result client_version() const = 0; [[nodiscard]] virtual utils::result server_version() const = 0; - virtual utils::result execute(const std::string &stmt) = 0; + virtual utils::result execute(const query_context &context) = 0; virtual utils::result, utils::error> fetch(const query_context &context) = 0; virtual utils::result, utils::error> prepare(const query_context &context) = 0; diff --git a/source/orm/sql/connection.cpp b/source/orm/sql/connection.cpp index 4bb4efb..3cadfcd 100644 --- a/source/orm/sql/connection.cpp +++ b/source/orm/sql/connection.cpp @@ -125,7 +125,7 @@ std::string connection::type() const { } utils::result 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()) { return utils::failure(res.err()); } @@ -134,7 +134,7 @@ utils::result connection::begin() const { } utils::result 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()) { return utils::failure(res.err()); } @@ -143,7 +143,7 @@ utils::result connection::commit() const { } utils::result 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()) { return utils::failure(res.err()); } @@ -178,7 +178,7 @@ utils::result, utils::error> connection::fetc utils::result connection::execute(const query_context& ctx) const { logger_->on_execute(ctx.sql); std::cout << ctx.sql << std::endl; - return connection_->execute(ctx.sql); + return connection_->execute(ctx); } utils::result connection::prepare(const query_context &ctx) {