in kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/incremental/client/netty/MySQLBinlogEventPacketDecoder.java [148:175]
private Optional<MySQLBaseBinlogEvent> decodeEvent(final MySQLBinlogEventHeader binlogEventHeader, final MySQLPacketPayload payload) {
switch (MySQLBinlogEventType.valueOf(binlogEventHeader.getEventType()).orElse(MySQLBinlogEventType.UNKNOWN_EVENT)) {
case ROTATE_EVENT:
decodeRotateEvent(binlogEventHeader, payload);
return Optional.empty();
case FORMAT_DESCRIPTION_EVENT:
decodeFormatDescriptionEvent(binlogEventHeader, payload);
return Optional.empty();
case TABLE_MAP_EVENT:
decodeTableMapEvent(binlogEventHeader, payload);
return Optional.empty();
case WRITE_ROWS_EVENT_V1:
case WRITE_ROWS_EVENT_V2:
return Optional.of(decodeWriteRowsEventV2(binlogEventHeader, payload));
case UPDATE_ROWS_EVENT_V1:
case UPDATE_ROWS_EVENT_V2:
return Optional.of(decodeUpdateRowsEventV2(binlogEventHeader, payload));
case DELETE_ROWS_EVENT_V1:
case DELETE_ROWS_EVENT_V2:
return Optional.of(decodeDeleteRowsEventV2(binlogEventHeader, payload));
case QUERY_EVENT:
return Optional.of(decodeQueryEvent(binlogEventHeader, payload));
case XID_EVENT:
return Optional.of(decodeXidEvent(binlogEventHeader, payload));
default:
return Optional.of(decodePlaceholderEvent(binlogEventHeader, payload));
}
}