comparison Framework/PostgreSQL/PostgreSQLTransaction.cpp @ 237:35598014f140

refactoring to remove GlobalProperties.cpp
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 08 Apr 2021 19:09:04 +0200
parents d1b124d116c1
children 16aac0287485
comparison
equal deleted inserted replaced
236:d1d2edbbe6fb 237:35598014f140
44 { 44 {
45 LOG(INFO) << "PostgreSQL: An active PostgreSQL transaction was dismissed"; 45 LOG(INFO) << "PostgreSQL: An active PostgreSQL transaction was dismissed";
46 46
47 try 47 try
48 { 48 {
49 database_.Execute("ABORT"); 49 database_.ExecuteMultiLines("ABORT");
50 } 50 }
51 catch (Orthanc::OrthancException&) 51 catch (Orthanc::OrthancException&)
52 { 52 {
53 // Ignore possible exceptions due to connection loss 53 // Ignore possible exceptions due to connection loss
54 } 54 }
62 { 62 {
63 LOG(ERROR) << "PostgreSQL: Beginning a transaction twice!"; 63 LOG(ERROR) << "PostgreSQL: Beginning a transaction twice!";
64 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); 64 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
65 } 65 }
66 66
67 database_.Execute("BEGIN"); 67 database_.ExecuteMultiLines("BEGIN");
68 68
69 switch (type) 69 switch (type)
70 { 70 {
71 case TransactionType_ReadWrite: 71 case TransactionType_ReadWrite:
72 database_.Execute("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ WRITE"); 72 database_.ExecuteMultiLines("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ WRITE");
73 break; 73 break;
74 74
75 case TransactionType_ReadOnly: 75 case TransactionType_ReadOnly:
76 database_.Execute("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY"); 76 database_.ExecuteMultiLines("SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY");
77 break; 77 break;
78 78
79 default: 79 default:
80 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); 80 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
81 } 81 }
91 LOG(ERROR) << "PostgreSQL: Attempting to rollback a nonexistent transaction. " 91 LOG(ERROR) << "PostgreSQL: Attempting to rollback a nonexistent transaction. "
92 << "Did you remember to call Begin()?"; 92 << "Did you remember to call Begin()?";
93 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); 93 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
94 } 94 }
95 95
96 database_.Execute("ABORT"); 96 database_.ExecuteMultiLines("ABORT");
97 isOpen_ = false; 97 isOpen_ = false;
98 } 98 }
99 99
100 100
101 void PostgreSQLTransaction::Commit() 101 void PostgreSQLTransaction::Commit()
105 LOG(ERROR) << "PostgreSQL: Attempting to roll back a nonexistent transaction. " 105 LOG(ERROR) << "PostgreSQL: Attempting to roll back a nonexistent transaction. "
106 << "Did you remember to call Begin()?"; 106 << "Did you remember to call Begin()?";
107 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); 107 throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
108 } 108 }
109 109
110 database_.Execute("COMMIT"); 110 database_.ExecuteMultiLines("COMMIT");
111 isOpen_ = false; 111 isOpen_ = false;
112 } 112 }
113 113
114 114
115 IResult* PostgreSQLTransaction::Execute(IPrecompiledStatement& statement, 115 IResult* PostgreSQLTransaction::Execute(IPrecompiledStatement& statement,