diff Framework/PostgreSQL/PostgreSQLParameters.cpp @ 497:8e6a95629a22

reorganization
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 03 Apr 2024 10:54:26 +0200
parents 4a76aca03774
children 54d518dcd74a
line wrap: on
line diff
--- a/Framework/PostgreSQL/PostgreSQLParameters.cpp	Tue Apr 02 20:21:04 2024 +0200
+++ b/Framework/PostgreSQL/PostgreSQLParameters.cpp	Wed Apr 03 10:54:26 2024 +0200
@@ -199,6 +199,36 @@
     database_ = database;
   }
 
+  const std::string PostgreSQLParameters::GetReadWriteTransactionStatement() const
+  {
+    switch (isolationMode_)
+    {
+      case IsolationMode_ReadCommited:
+        return "SET TRANSACTION ISOLATION LEVEL READ COMMITTED READ WRITE";
+
+      case IsolationMode_Serializable:
+        return "SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ WRITE";
+
+      default:
+        throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
+    }
+  }
+
+  const std::string PostgreSQLParameters::GetReadOnlyTransactionStatement() const
+  {
+    switch (isolationMode_)
+    {
+      case IsolationMode_ReadCommited:
+        return "SET TRANSACTION ISOLATION LEVEL READ COMMITTED READ ONLY";
+
+      case IsolationMode_Serializable:
+        return "SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY";
+
+      default:
+        throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
+    }
+  }
+
   void PostgreSQLParameters::Format(std::string& target) const
   {
     if (uri_.empty())