diff options
Diffstat (limited to 'libpqpp/pq-connection.cpp')
-rw-r--r-- | libpqpp/pq-connection.cpp | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/libpqpp/pq-connection.cpp b/libpqpp/pq-connection.cpp index a65d88b..dc3cf13 100644 --- a/libpqpp/pq-connection.cpp +++ b/libpqpp/pq-connection.cpp @@ -55,25 +55,25 @@ PQ::Connection::~Connection() void PQ::Connection::beginTxInt() { - checkResultFree(PQexec(conn, "BEGIN"), PGRES_COMMAND_OK); + checkResult(PQexec(conn, "BEGIN"), PGRES_COMMAND_OK); } void PQ::Connection::commitTxInt() { - checkResultFree(PQexec(conn, "COMMIT"), PGRES_COMMAND_OK); + checkResult(PQexec(conn, "COMMIT"), PGRES_COMMAND_OK); } void PQ::Connection::rollbackTxInt() { - checkResultFree(PQexec(conn, "ROLLBACK"), PGRES_COMMAND_OK); + checkResult(PQexec(conn, "ROLLBACK"), PGRES_COMMAND_OK); } void PQ::Connection::execute(const std::string & sql, const DB::CommandOptionsCPtr &) { - checkResultFree(PQexec(conn, sql.c_str()), PGRES_COMMAND_OK, PGRES_TUPLES_OK); + checkResult(PQexec(conn, sql.c_str()), PGRES_COMMAND_OK, PGRES_TUPLES_OK); } DB::BulkDeleteStyle @@ -130,24 +130,14 @@ PQ::Connection::checkResultInt(PGresult * res, int expected, int alt) return (PQresultStatus(res) == expected) || (alt != -1 && (PQresultStatus(res) == alt)); } -PGresult * +PQ::ResultPtr PQ::Connection::checkResult(PGresult * res, int expected, int alt) const { if (!checkResultInt(res, expected, alt)) { PQclear(res); throw Error(conn); } - return res; -} - -void -PQ::Connection::checkResultFree(PGresult * res, int expected, int alt) const -{ - if (!checkResultInt(res, expected, alt)) { - PQclear(res); - throw Error(conn); - } - PQclear(res); + return ResultPtr {res}; } AdHocFormatter(PQConnectionCopyFrom, "COPY %? FROM STDIN %?"); @@ -155,7 +145,7 @@ AdHocFormatter(PQConnectionCopyFrom, "COPY %? FROM STDIN %?"); void PQ::Connection::beginBulkUpload(const char * table, const char * extra) { - checkResultFree(PQexec(conn, PQConnectionCopyFrom::get(table, extra).c_str()), PGRES_COPY_IN); + checkResult(PQexec(conn, PQConnectionCopyFrom::get(table, extra).c_str()), PGRES_COPY_IN); } void @@ -168,7 +158,7 @@ PQ::Connection::endBulkUpload(const char * msg) if (rc != 1) { throw Error(conn); } - checkResultFree(PQgetResult(conn), PGRES_COMMAND_OK); + checkResult(PQgetResult(conn), PGRES_COMMAND_OK); } size_t |