4368 fix oracle failing odbc tests (#4611)

* chore(CI): enable oracle ODBC tests #4368

* fix(ODBC): Oracle AutoTransaction test case; add explicit ODBC exceptions instantiation #4368

* fix(odbc): oracle test table creation error detection #4368

* enh(Data): enforce sql parsing for transaction tests to avoid select-only transactions #4368

---------

Co-authored-by: cunj123 <n.belusic@pta.hr>
This commit is contained in:
Aleksandar Fabijanic
2024-07-24 06:05:08 -05:00
committed by GitHub
parent a6762f51cf
commit 7064ae3c2d
7 changed files with 108 additions and 42 deletions

View File

@@ -3857,6 +3857,8 @@ void SQLExecutor::sessionTransaction(const std::string& connector, const std::st
}
bool autoCommit = session().getFeature("autoCommit");
bool sqlParse = session().getFeature("sqlParse");
session().setFeature("sqlParse", true);
Session local(connector, connect);
@@ -3925,6 +3927,7 @@ void SQLExecutor::sessionTransaction(const std::string& connector, const std::st
// end autoCommit = true
// restore the original transaction state
session().setFeature("sqlParse", sqlParse);
session().setFeature("autoCommit", autoCommit);
}
@@ -3932,6 +3935,8 @@ void SQLExecutor::sessionTransaction(const std::string& connector, const std::st
void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connector, const std::string& connect)
{
bool autoCommit = session().getFeature("autoCommit");
bool sqlParse = session().getFeature("sqlParse");
session().setFeature("sqlParse", true);
Session local(connector, connect);
local.setFeature("autoCommit", false);
@@ -4019,6 +4024,8 @@ void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connector, c
session().commit();
local.commit();
#endif
session().setFeature("sqlParse", sqlParse);
session().setFeature("autoCommit", autoCommit);
}
@@ -4033,9 +4040,12 @@ void SQLExecutor::transaction(const std::string& connector, const std::string& c
Session local(connector, connect);
local.setFeature("autoCommit", true);
local.setFeature("sqlParse", true);
bool autoCommit = session().getFeature("autoCommit");
auto ti = session().getTransactionIsolation();
bool sqlParse = session().getFeature("sqlParse");
session().setFeature("sqlParse", true);
setTransactionIsolation(session(), Session::TRANSACTION_READ_COMMITTED);
if (local.hasTransactionIsolation(Session::TRANSACTION_READ_UNCOMMITTED))
@@ -4157,6 +4167,7 @@ void SQLExecutor::transaction(const std::string& connector, const std::string& c
session().commit();
// restore the original transaction state
session().setFeature("sqlParse", sqlParse);
session().setFeature("autoCommit", autoCommit);
setTransactionIsolation(session(), ti);
}
@@ -4192,6 +4203,8 @@ void SQLExecutor::transactor()
session().setFeature("autoCommit", false);
session().setTransactionIsolation(Session::TRANSACTION_READ_COMMITTED);
bool sqlParse = session().getFeature("sqlParse");
session().setFeature("sqlParse", true);
TestCommitTransactor ct;
Transaction t1(session(), ct);
@@ -4249,6 +4262,7 @@ void SQLExecutor::transactor()
session().commit();
// restore the original transaction state
session().setFeature("sqlParse", sqlParse);
session().setFeature("autoCommit", autoCommit);
setTransactionIsolation(session(), ti);
}