From e8fa7b887eeb29b3edac194b024e95b47991aa33 Mon Sep 17 00:00:00 2001 From: Gunnar Morling Date: Fri, 9 Feb 2018 14:16:53 +0100 Subject: [PATCH] DBZ-588 Typo fix and additional method comment --- .../connector/mysql/BinlogReader.java | 27 ++++++++++++------- .../connector/mysql/RecordMakers.java | 2 +- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/BinlogReader.java b/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/BinlogReader.java index 8b8c55c4c..cbb32d0e0 100644 --- a/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/BinlogReader.java +++ b/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/BinlogReader.java @@ -639,12 +639,18 @@ protected void handleUpdateTableMetadata(Event event) { TableId tableId = new TableId(databaseName, null, tableName); if (recordMakers.assign(tableNumber, tableId)) { logger.debug("Received update table metadata event: {}", event); - } else { - eventNotToBeRecorded(event, tableId, "update table metadata"); + } + else { + informAboutUnknownTableIfRequired(event, tableId, "update table metadata"); } } - private void eventNotToBeRecorded(Event event, TableId tableId, String typeToLog) { + /** + * If we receive an event for a table that is monitored but whose metadata we + * don't know, either ignore that event or raise a warning or error as per the + * {@link MySqlConnectorConfig#INCONSISTENT_SCHEMA_HANDLING_MODE} configuration. + */ + private void informAboutUnknownTableIfRequired(Event event, TableId tableId, String typeToLog) { if (tableId != null && context.dbSchema().isTableMonitored(tableId)) { EventHeaderV4 eventHeader = event.getHeader(); @@ -736,8 +742,9 @@ protected void handleInsert(Event event) throws InterruptedException { // All rows were previously processed ... logger.debug("Skipping previously processed insert event: {}", event); } - } else { - eventNotToBeRecorded(event, recordMakers.getTableIfFromTableNumber(tableNumber), "insert row"); + } + else { + informAboutUnknownTableIfRequired(event, recordMakers.getTableIdFromTableNumber(tableNumber), "insert row"); } startingRowNumber = 0; } @@ -787,8 +794,9 @@ protected void handleUpdate(Event event) throws InterruptedException { // All rows were previously processed ... logger.debug("Skipping previously processed update event: {}", event); } - } else { - eventNotToBeRecorded(event, recordMakers.getTableIfFromTableNumber(tableNumber), "update row"); + } + else { + informAboutUnknownTableIfRequired(event, recordMakers.getTableIdFromTableNumber(tableNumber), "update row"); } startingRowNumber = 0; } @@ -834,8 +842,9 @@ protected void handleDelete(Event event) throws InterruptedException { // All rows were previously processed ... logger.debug("Skipping previously processed delete event: {}", event); } - } else { - eventNotToBeRecorded(event, recordMakers.getTableIfFromTableNumber(tableNumber), "delete row"); + } + else { + informAboutUnknownTableIfRequired(event, recordMakers.getTableIdFromTableNumber(tableNumber), "delete row"); } startingRowNumber = 0; } diff --git a/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/RecordMakers.java b/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/RecordMakers.java index 96cc17ae9..801bbaac3 100644 --- a/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/RecordMakers.java +++ b/debezium-connector-mysql/src/main/java/io/debezium/connector/mysql/RecordMakers.java @@ -482,7 +482,7 @@ public int delete(Object[] row, long ts, int rowNumber, int numberOfRows) throws * @param tableNumber * @return the table id or null for unknown tables */ - public TableId getTableIfFromTableNumber(long tableNumber) { + public TableId getTableIdFromTableNumber(long tableNumber) { return tableIdsByTableNumber.get(tableNumber); } }