From 54cb7bea25bf7ef68a0bef4f4162285db7b3a5c6 Mon Sep 17 00:00:00 2001 From: Chris Cranford Date: Wed, 1 Dec 2021 04:33:36 -0500 Subject: [PATCH] DBZ-4384 Correctly skip emitting events when LOB_ERASE is detected --- .../oracle/logminer/processor/TransactionCommitConsumer.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/processor/TransactionCommitConsumer.java b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/processor/TransactionCommitConsumer.java index 7cb22e8a4..109ee02dd 100644 --- a/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/processor/TransactionCommitConsumer.java +++ b/debezium-connector-oracle/src/main/java/io/debezium/connector/oracle/logminer/processor/TransactionCommitConsumer.java @@ -197,6 +197,11 @@ else if (EventType.LOB_ERASE == event.getEventType()) { // nothing is done with the event, its just consumed and treated as merged. LOGGER.warn("\tLOB_ERASE for table '{}' column '{}' is not supported.", lastSelectLobLocatorEvent.getTableId(), lastSelectLobLocatorEvent.getColumnName()); + if (lastEvent != null && EventType.SELECT_LOB_LOCATOR == lastEvent.getEventType()) { + LOGGER.trace("\tSkipped LOB_ERASE, discarding it and the prior SELECT_LOB_LOCATOR"); + lastEvent = null; + return true; + } LOGGER.trace("\tSkipped LOB_ERASE, treated as merged."); return true; }