Mercurial > hg > orthanc-databases
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 |