Mercurial > hg > orthanc-databases
comparison Framework/PostgreSQL/PostgreSQLTransaction.cpp @ 469:302f3c2b1c34
merge pg-transactions -> mainline
author | Alain Mazy <am@osimis.io> |
---|---|
date | Mon, 05 Feb 2024 09:48:11 +0100 |
parents | f0976163dbe1 |
children | 8e6a95629a22 |
comparison
equal
deleted
inserted
replaced
464:042416783518 | 469:302f3c2b1c34 |
---|---|
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 |