diff options
Diffstat (limited to 'libpqpp')
-rw-r--r-- | libpqpp/pq-connection.cpp | 1 | ||||
-rw-r--r-- | libpqpp/pq-connection.h | 2 | ||||
-rw-r--r-- | libpqpp/unittests/testpq.cpp | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/libpqpp/pq-connection.cpp b/libpqpp/pq-connection.cpp index 5b560a9..547923f 100644 --- a/libpqpp/pq-connection.cpp +++ b/libpqpp/pq-connection.cpp @@ -88,6 +88,7 @@ PQ::Connection::ping() const if (inTx()) { throw ConnectionError(conn); } + preparedStatements.clear(); PQreset(conn); if (PQstatus(conn) != CONNECTION_OK) { throw ConnectionError(conn); diff --git a/libpqpp/pq-connection.h b/libpqpp/pq-connection.h index d5cbde6..1659c13 100644 --- a/libpqpp/pq-connection.h +++ b/libpqpp/pq-connection.h @@ -43,7 +43,7 @@ namespace PQ { void checkResultFree(PGresult * res, int expected, int alternative = -1) const; PGconn * conn; - PreparedStatements preparedStatements; + mutable PreparedStatements preparedStatements; private: static bool checkResultInt(PGresult * res, int expected, int alternative); diff --git a/libpqpp/unittests/testpq.cpp b/libpqpp/unittests/testpq.cpp index f7c327f..fcf01e3 100644 --- a/libpqpp/unittests/testpq.cpp +++ b/libpqpp/unittests/testpq.cpp @@ -232,6 +232,7 @@ BOOST_AUTO_TEST_CASE( reconnect ) int pid1 = PQbackendPID(pqconn->conn); BOOST_REQUIRE(pid1); ro->ping(); + ro->modify("TRUNCATE TABLE test")->execute(); auto kil = rok->newModifyCommand("SELECT pg_terminate_backend(?)"); kil->bindParamI(0, pid1); kil->execute(); @@ -241,6 +242,7 @@ BOOST_AUTO_TEST_CASE( reconnect ) int pid2 = PQbackendPID(pqconn->conn); BOOST_REQUIRE(pid2); BOOST_REQUIRE(pid1 != pid2); + ro->modify("TRUNCATE TABLE test")->execute(); delete ro; delete rok; } |