comparison 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
comparison
equal deleted inserted replaced
369:557bc5ba3a5c 370:d2b5d9c92214
68 database_.ExecuteMultiLines("BEGIN"); 68 database_.ExecuteMultiLines("BEGIN");
69 69
70 switch (type) 70 switch (type)
71 { 71 {
72 case TransactionType_ReadWrite: 72 case TransactionType_ReadWrite:
73 database_.ExecuteMultiLines("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ WRITE"); 73 {
74 break; 74 const std::string& statement = database_.GetReadWriteTransactionStatement();
75 if (!statement.empty()) // if not defined, will use the default DB transaction isolation level
76 {
77 database_.ExecuteMultiLines(statement);
78 }
79 }; break;
75 80
76 case TransactionType_ReadOnly: 81 case TransactionType_ReadOnly:
77 database_.ExecuteMultiLines("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY"); 82 {
78 break; 83 const std::string& statement = database_.GetReadOnlyTransactionStatement();
84 if (!statement.empty()) // if not defined, will use the default DB transaction isolation level
85 {
86 database_.ExecuteMultiLines(statement);
87 }
88 }; break;
79 89
80 default: 90 default:
81 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); 91 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
82 } 92 }
83 93