PostgreSQL SessionHandle: const fixes.

This commit is contained in:
Friedrich Wilckens 2023-11-03 19:48:52 -07:00
parent 6eec8adfcb
commit 8740816c78
3 changed files with 14 additions and 15 deletions

View File

@ -106,7 +106,7 @@ public:
void startTransaction();
/// Start transaction
bool isTransaction();
bool isTransaction() const;
/// Returns true iff a transaction is a transaction is in progress, false otherwise.
void commit();
@ -115,13 +115,13 @@ public:
void rollback();
/// Rollback trabsaction
bool isAutoCommit();
bool isAutoCommit() const;
/// is the connection in auto commit mode?
void setAutoCommit(bool aShouldAutoCommit = true);
/// is the connection in auto commit mode?
bool isAsynchronousCommit();
bool isAsynchronousCommit() const;
/// is the connection in Asynchronous commit mode?
void setAsynchronousCommit(bool aShouldAsynchronousCommit = true);
@ -133,10 +133,10 @@ public:
void setTransactionIsolation(Poco::UInt32 aTI);
/// Sets the transaction isolation level.
Poco::UInt32 transactionIsolation();
Poco::UInt32 transactionIsolation() const;
/// Returns the transaction isolation level.
bool hasTransactionIsolation(Poco::UInt32 aTI);
static bool hasTransactionIsolation(Poco::UInt32 aTI);
/// Returns true iff the transaction isolation level corresponding
/// to the supplied bitmask is supported.
@ -288,7 +288,7 @@ inline SessionHandle::operator PGconn * ()
}
inline Poco::FastMutex&SessionHandle::mutex()
inline Poco::FastMutex& SessionHandle::mutex()
{
return _sessionMutex;
}
@ -300,19 +300,19 @@ inline std::string SessionHandle::connectionString() const
}
inline bool SessionHandle::isTransaction()
inline bool SessionHandle::isTransaction() const
{
return _inTransaction;
}
inline bool SessionHandle::isAutoCommit()
inline bool SessionHandle::isAutoCommit() const
{
return _isAutoCommit;
}
inline bool SessionHandle::isAsynchronousCommit()
inline bool SessionHandle::isAsynchronousCommit() const
{
return _isAsynchronousCommit;
}

View File

@ -270,6 +270,7 @@ void SessionHandle::rollback()
void SessionHandle::setAutoCommit(bool aShouldAutoCommit)
{
// There is no PostgreSQL API call to switch autocommit (unchained) mode off.
if (aShouldAutoCommit == _isAutoCommit)
{
return;
@ -277,8 +278,7 @@ void SessionHandle::setAutoCommit(bool aShouldAutoCommit)
if (aShouldAutoCommit)
{
Poco::FastMutex::ScopedLock mutexLocker(_sessionMutex);
if (_inTransaction)
if (isTransaction())
commit(); // end any in process transaction
}
@ -374,7 +374,7 @@ void SessionHandle::setTransactionIsolation(Poco::UInt32 aTI)
}
Poco::UInt32 SessionHandle::transactionIsolation()
Poco::UInt32 SessionHandle::transactionIsolation() const
{
return _tranactionIsolationLevel;
}

View File

@ -1991,11 +1991,10 @@ void SQLExecutor::transaction(const std::string& connect)
bool autoCommit = _pSession->getFeature("autoCommit");
/* _pSession->setFeature("autoCommit", false);
assertTrue (_pSession->isTransaction());
_pSession->setFeature("autoCommit", false);
_pSession->setFeature("autoCommit", true);
assertTrue (!_pSession->isTransaction());
*/
_pSession->setTransactionIsolation(Session::TRANSACTION_READ_COMMITTED);
{