summaryrefslogtreecommitdiff
path: root/libpqpp/pq-connection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libpqpp/pq-connection.cpp')
-rw-r--r--libpqpp/pq-connection.cpp26
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