Closed jmlw closed 1 year ago
the same question in mysql v5.7.1
Hi, I believe this is fixed via https://github.com/osheroff/mysql-binlog-connector-java/pull/114
I come from other side of the problem DBZ-6413. As the parsing is done incorrectly then with certain combination and count of columns the parsing gets out of sync and fails completely
See
CREATE TABLE `table1` (`c1` int(20) NOT NULL AUTO_INCREMENT, `c2` year, `c3` int, `c4` int, `c5` int, `c6` int, `c7` int, `c8` int, `c9` int, c10 char(10), PRIMARY KEY (`c1`));
INSERT INTO `table1` (c1, c2, c3, c4, c5, c6, c7, c8, c9, c10) VALUES (1, 2, 3, 4, 5, 6, 7, 8, 9, '');
The result is
... 3 common frames omitted
Caused by: java.io.IOException: Unsupported table metadata field type 0
at com.github.shyiko.mysql.binlog.event.deserialization.TableMapEventMetadataDeserializer.deserialize(TableMapEventMetadataDeserializer.java:52)
at com.github.shyiko.mysql.binlog.event.deserialization.TableMapEventDataDeserializer.deserialize(TableMapEventDataDeserializer.java:47)
at com.github.shyiko.mysql.binlog.event.deserialization.TableMapEventDataDeserializer.deserialize(TableMapEventDataDeserializer.java:27)
at com.github.shyiko.mysql.binlog.event.deserialization.EventDeserializer.deserializeEventData(EventDeserializer.java:335)
... 7 common frames omitted
Thanks for the investigation and fix @jpechane 👍
Closing as https://github.com/osheroff/mysql-binlog-connector-java/pull/114 appears to correct the issue
Parsing binlog events for MySQL 8.0.29+ (may occur in older versions as well) result in unexpected signedness bit when parsing
INT
column following aYEAR
column.The sql above results in table map event metadata which indicates column
int_col
is unsigned indemo1
andint_col
is unsigned indemo2
table, butdemo3
table does not indicate any column is unsigned.The binlog that shows this is here as a hexdump: https://gist.github.com/jmlw/2b318ae6090ab28f8c3fb6b86bd57f62