Mercurial > hg > orthanc-databases
diff Framework/PostgreSQL/PostgreSQLTransaction.cpp @ 370:d2b5d9c92214 pg-transactions
PG: test feature: configurable transaction isolation level
author | Alain Mazy <am@osimis.io> |
---|---|
date | Wed, 22 Feb 2023 16:52:04 +0100 |
parents | 16aac0287485 |
children | 15bfd9a76f8d |
line wrap: on
line diff
--- a/Framework/PostgreSQL/PostgreSQLTransaction.cpp Wed Feb 01 16:25:37 2023 +0100 +++ b/Framework/PostgreSQL/PostgreSQLTransaction.cpp Wed Feb 22 16:52:04 2023 +0100 @@ -70,12 +70,22 @@ switch (type) { case TransactionType_ReadWrite: - database_.ExecuteMultiLines("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ WRITE"); - break; + { + const std::string& statement = database_.GetReadWriteTransactionStatement(); + if (!statement.empty()) // if not defined, will use the default DB transaction isolation level + { + database_.ExecuteMultiLines(statement); + } + }; break; case TransactionType_ReadOnly: - database_.ExecuteMultiLines("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY"); - break; + { + const std::string& statement = database_.GetReadOnlyTransactionStatement(); + if (!statement.empty()) // if not defined, will use the default DB transaction isolation level + { + database_.ExecuteMultiLines(statement); + } + }; break; default: throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);