From bbe45e63dc6797a4d91bac4db8da6a55e547b452 Mon Sep 17 00:00:00 2001 From: Tudor Voicu Date: Tue, 31 Aug 2021 17:57:04 +0200 Subject: [PATCH] Rebased --- .../store/backend/common/CommonStorageBackend.scala | 6 +++++- .../platform/store/backend/StorageBackendTestsPruning.scala | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ledger/participant-integration-api/src/main/scala/platform/store/backend/common/CommonStorageBackend.scala b/ledger/participant-integration-api/src/main/scala/platform/store/backend/common/CommonStorageBackend.scala index f15ab3632f20..3c8017a3c7df 100644 --- a/ledger/participant-integration-api/src/main/scala/platform/store/backend/common/CommonStorageBackend.scala +++ b/ledger/participant-integration-api/src/main/scala/platform/store/backend/common/CommonStorageBackend.scala @@ -480,6 +480,7 @@ private[backend] trait CommonStorageBackend[DB_BATCH] extends StorageBackend[DB_ // Events + // TODO Cleanup: Extract to [[EventStorageBackendTemplate]] def pruneEvents( pruneUpToInclusive: Offset, pruneAllDivulgedContracts: Boolean, @@ -526,11 +527,14 @@ private[backend] trait CommonStorageBackend[DB_BATCH] extends StorageBackend[DB_ }(connection, loggingContext) if (pruneAllDivulgedContracts) { - val pruneAfterClause = + val pruneAfterClause = { + // We need to distinguish between the two cases since lexicographical comparison + // in Oracle doesn't work with '' (empty strings are treated as NULLs) as one of the operands participantAllDivulgedContractsPrunedUpToInclusive(connection) match { case Some(pruneAfter) => cSQL"and event_offset > $pruneAfter" case None => cSQL"" } + } pruneWithLogging(queryDescription = "Immediate divulgence events pruning") { SQL""" diff --git a/ledger/participant-integration-api/src/test/lib/scala/platform/store/backend/StorageBackendTestsPruning.scala b/ledger/participant-integration-api/src/test/lib/scala/platform/store/backend/StorageBackendTestsPruning.scala index 8b26b33b7112..733ea474682f 100644 --- a/ledger/participant-integration-api/src/test/lib/scala/platform/store/backend/StorageBackendTestsPruning.scala +++ b/ledger/participant-integration-api/src/test/lib/scala/platform/store/backend/StorageBackendTestsPruning.scala @@ -164,7 +164,7 @@ private[backend] trait StorageBackendTestsPruning extends Matchers with StorageB ) val contract1_retroactiveDivulgence = dtoDivulgence( - offset = offset(3), + offset = Some(offset(3)), eventSequentialId = 3L, contractId = contract1_id, divulgee = partyName, @@ -236,7 +236,7 @@ private[backend] trait StorageBackendTestsPruning extends Matchers with StorageB signatory = signatory, ) val contract1_divulgence = dtoDivulgence( - offset = offset(2), + offset = Some(offset(2)), eventSequentialId = 2L, contractId = contract1_id, divulgee = "party", @@ -248,7 +248,7 @@ private[backend] trait StorageBackendTestsPruning extends Matchers with StorageB contractId = contract1_id, ) val contract2_divulgence = dtoDivulgence( - offset = offset(4), + offset = Some(offset(4)), eventSequentialId = 4L, contractId = contract2_id, divulgee = divulgee,