# HG changeset patch # User Alain Mazy # Date 1720535452 -7200 # Node ID 48aba35fe64e786ab56dc89c66bf9929b4ac3529 # Parent 9413451fd9847bfa97ea170a5aaacef5776a794c merged BEGIN and SET TRANSACTION statements diff -r 9413451fd984 -r 48aba35fe64e Framework/PostgreSQL/PostgreSQLTransaction.cpp --- a/Framework/PostgreSQL/PostgreSQLTransaction.cpp Tue Jul 09 16:21:25 2024 +0200 +++ b/Framework/PostgreSQL/PostgreSQLTransaction.cpp Tue Jul 09 16:30:52 2024 +0200 @@ -65,37 +65,28 @@ LOG(ERROR) << "PostgreSQL: Beginning a transaction twice!"; throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls); } - - database_.ExecuteMultiLines("BEGIN"); + std::string transactionStatement; // if not defined, will use the default DB transaction isolation level switch (type) { case TransactionType_ReadWrite: { - std::string statement = database_.GetReadWriteTransactionStatement(); - if (!statement.empty()) // if not defined, will use the default DB transaction isolation level - { - database_.ExecuteMultiLines(statement); - } - + transactionStatement = database_.GetReadWriteTransactionStatement(); break; } case TransactionType_ReadOnly: { - std::string statement = database_.GetReadOnlyTransactionStatement(); - if (!statement.empty()) // if not defined, will use the default DB transaction isolation level - { - database_.ExecuteMultiLines(statement); - } - + transactionStatement = database_.GetReadOnlyTransactionStatement(); break; } default: throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); } - + + database_.ExecuteMultiLines("BEGIN; " + transactionStatement); + isOpen_ = true; } diff -r 9413451fd984 -r 48aba35fe64e PostgreSQL/NEWS --- a/PostgreSQL/NEWS Tue Jul 09 16:21:25 2024 +0200 +++ b/PostgreSQL/NEWS Tue Jul 09 16:30:52 2024 +0200 @@ -12,8 +12,9 @@ - using more prepared SQL statements: - InsertOrUpdateMetadata - ExecuteSetResourcesContentTags + - merged BEGIN and SET TRANSACTION statements - reduced the number of round-trips between Orthanc and the PostgreSQL server: - - e.g: when receiving an instance in an existing series, reduced the number of SQL queries from 13 to 10 (to be continued) + - e.g: when receiving an instance in an existing series, reduced the number of SQL queries from 13 to 9 (to be continued) Release 6.2 (2024-03-25)