diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2016-01-10 17:53:38 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2016-01-10 17:53:38 +0000 |
commit | c6e4e34be7d09c39357e25dc0ac7e6ffd2e4d9e5 (patch) | |
tree | 24c7e9372e5e371a2a4be304f10f4008749f927f | |
parent | Only open select transactions when the connection doesn't already have one (diff) | |
download | libdbpp-postgresql-c6e4e34be7d09c39357e25dc0ac7e6ffd2e4d9e5.tar.bz2 libdbpp-postgresql-c6e4e34be7d09c39357e25dc0ac7e6ffd2e4d9e5.tar.xz libdbpp-postgresql-c6e4e34be7d09c39357e25dc0ac7e6ffd2e4d9e5.zip |
Close select tx after close cursor, add error checkinglibdbpp-postgresql-1.0.2
-rw-r--r-- | libpqpp/pq-selectcommand.cpp | 9 | ||||
-rw-r--r-- | libpqpp/unittests/testpq.cpp | 9 |
2 files changed, 12 insertions, 6 deletions
diff --git a/libpqpp/pq-selectcommand.cpp b/libpqpp/pq-selectcommand.cpp index 6c02fc4..55dc02c 100644 --- a/libpqpp/pq-selectcommand.cpp +++ b/libpqpp/pq-selectcommand.cpp @@ -21,15 +21,12 @@ PQ::SelectCommand::SelectCommand(Connection * conn, const std::string & sql, uns PQ::SelectCommand::~SelectCommand() { + if (executed) { + c->checkResultFree((PQexec(c->conn, s_close.c_str())), PGRES_COMMAND_OK); + } if (txOpened) { c->commitTx(); } - if (executed) { - PQclear(PQexec(c->conn, s_close.c_str())); - if (execRes) { - PQclear(execRes); - } - } } std::string diff --git a/libpqpp/unittests/testpq.cpp b/libpqpp/unittests/testpq.cpp index c49fa34..96e5611 100644 --- a/libpqpp/unittests/testpq.cpp +++ b/libpqpp/unittests/testpq.cpp @@ -160,6 +160,15 @@ BOOST_AUTO_TEST_CASE( bulkload ) delete ro; } +BOOST_AUTO_TEST_CASE( nofetch ) +{ + auto ro = DB::MockDatabase::openConnectionTo("pqmock"); + auto count = ro->newSelectCommand("SELECT * FROM bulktest"); + count->execute(); + delete count; + delete ro; +} + BOOST_AUTO_TEST_CASE( bigIterate ) { auto ro = DB::MockDatabase::openConnectionTo("pqmock"); |