Use transaction_isolation in MySQL 8+ (#3490)

* Use transaction_isolation in MySQL 8+

* Trim buffer before comparison
This commit is contained in:
Hernan Martinez 2022-05-26 10:36:45 -04:00 committed by GitHub
parent 3d316bd548
commit 0081bde084
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -14,6 +14,7 @@
#include "Poco/Data/MySQL/SessionImpl.h"
#include "Poco/Data/MySQL/MySQLStatementImpl.h"
#include "Poco/Data/MySQL/Utility.h"
#include "Poco/Data/Session.h"
#include "Poco/NumberParser.h"
#include "Poco/String.h"
@ -255,7 +256,16 @@ void SessionImpl::setTransactionIsolation(Poco::UInt32 ti)
Poco::UInt32 SessionImpl::getTransactionIsolation() const
{
std::string isolation;
getSetting("tx_isolation", isolation);
unsigned long version = Utility::serverVersion(_handle);
if (version >= 80000)
{
getSetting("transaction_isolation", isolation);
isolation = isolation.c_str();
}
else
{
getSetting("tx_isolation", isolation);
}
Poco::replaceInPlace(isolation, "-", " ");
if (MYSQL_READ_UNCOMMITTED == isolation)
return Session::TRANSACTION_READ_UNCOMMITTED;