From 8fd7b2fe9c3cd2451112d8aa28ca04cb9da529ec Mon Sep 17 00:00:00 2001 From: avalon566 Date: Sun, 29 Sep 2019 15:29:10 +0800 Subject: [PATCH] Support v1 rows event --- .../sync/mysql/binlog/packet/binlog/RowsEvent.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/info/avalon566/shardingscaling/sync/mysql/binlog/packet/binlog/RowsEvent.java b/src/main/java/info/avalon566/shardingscaling/sync/mysql/binlog/packet/binlog/RowsEvent.java index 8cf682afe7..bcfeb271e8 100644 --- a/src/main/java/info/avalon566/shardingscaling/sync/mysql/binlog/packet/binlog/RowsEvent.java +++ b/src/main/java/info/avalon566/shardingscaling/sync/mysql/binlog/packet/binlog/RowsEvent.java @@ -60,9 +60,13 @@ public class RowsEvent { public void parsePostHeader(final ByteBuf in) { tableId = DataTypesCodec.readUnsignedInt6LE(in); flags = DataTypesCodec.readUnsignedInt2LE(in); - var extraDataLength = DataTypesCodec.readUnsignedInt2LE(in) - 2; - // skip data - DataTypesCodec.readBytes(extraDataLength, in); + if (EventTypes.WRITE_ROWS_EVENTv2 <= binlogEventHeader.getTypeCode() + && EventTypes.DELETE_ROWS_EVENTv2 >= binlogEventHeader.getTypeCode()) { + // added the extra-data fields in v2 + var extraDataLength = DataTypesCodec.readUnsignedInt2LE(in) - 2; + // skip data + DataTypesCodec.readBytes(extraDataLength, in); + } } public void parsePaylod(final BinlogContext binlogContext, final ByteBuf in) { -- GitLab