e-mhui opened a new pull request, #7788: URL: https://github.com/apache/inlong/pull/7788
### Prepare a Pull Request [INLONG-7787][Sort] Fix cannot output drop statement - Fixes #7787 ### Motivation The `tableChanges` of the drop ddl statement is empty, so it cannot enter the `outputDdlElement()` method. We need to check below whether the drop ddl statement belongs to the currently captured table. If so, output the DDL element. <img width="1816" alt="image" src="https://user-images.githubusercontent.com/111486498/230014752-bf50e20b-37d2-4726-a4c2-7df3b96095de.png"> ### Modifications 1. Get the ddl statement from `historyRecord` and determine if it is a drop statement. 2. Obtain its `tableId` and query in the state to check if it belongs to the captured tables. ```java // For drop table ddl, there's no table change events. if (tableChanges.isEmpty()) { String ddl = historyRecord.document().getString(Fields.DDL_STATEMENTS); if (ddl.toUpperCase().startsWith(DDL_OP_DROP)) { String tableName = org.apache.inlong.sort.cdc.mysql.source.utils.RecordUtils.getTableName(element); String dbName = org.apache.inlong.sort.cdc.mysql.source.utils.RecordUtils.getDbName(element); TableId tableId = org.apache.inlong.sort.cdc.mysql.source.utils.RecordUtils.getTabelId(dbName, tableName); // If this table is one of the captured tables, output the ddl element. if (splitState.getMySQLSplit().getTableSchemas().containsKey(tableId)) { outputDdlElement(element, output, splitState, null); } } } ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
