You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
setAutoCommit currently calls commit() when autocommit is set to true and calls startTransaction() otherwise. This contradicts the new code (introduced in bd06526) in Data::Session:
For the PostgreSQL backend, setFeature("autoCommit", false) calls setAutoCommit(false) which in turn calls startTransaction(). Hence a transaction is already underway when Session()::begin() calls _pImpl->begin(), which raises an exception.
Since starting a transaction in Poco::Data::Session now changes the autocommit mode , setting the autocommit mode should not in turn start a transaction. The PostgreSQL test program also needs to be changed. It asserts that a transaction is under way after setting the autocommit mode to false:
setAutoCommit currently calls commit() when autocommit is set to true and calls startTransaction() otherwise. This contradicts the new code (introduced in bd06526) in Data::Session:
void Session::begin() { if (isAutocommit()) { setFeature("autoCommit", false); _wasAutoCommit = true; } return _pImpl->begin(); }
For the PostgreSQL backend, setFeature("autoCommit", false) calls setAutoCommit(false) which in turn calls startTransaction(). Hence a transaction is already underway when Session()::begin() calls _pImpl->begin(), which raises an exception.
Since starting a transaction in Poco::Data::Session now changes the autocommit mode , setting the autocommit mode should not in turn start a transaction. The PostgreSQL test program also needs to be changed. It asserts that a transaction is under way after setting the autocommit mode to false:
_pSession->setFeature("autoCommit", false); assertTrue (_pSession->isTransaction());
The text was updated successfully, but these errors were encountered: