MySQL 8.x and binlog_row_metadata = FULL [DBZ-7794]
- Dominant language
- HTML
- Stars
- 6
- Forks
- 9
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 1
Description
Migrated from [DBZ-7794](https://issues.redhat.com/browse/DBZ-7794)
Hello,
I have read that starting from MySQL 8 the binlog contains more information about the table being modified in the Table_map event, priors to any insert/update event. In full mode
set global binlog_row_metadata = FULL, all metadata are present, see for example:
{code:java}
insert into test (id, c1, c3) values (8, 0, 'bye'); {code}
from the binlog:
{code:java}
#240419 9:35:26 server id 1 end_log_pos 1509 CRC32 0x1dab5f9b Table_map: `mydb`.`test` mapped to number 90
# has_generated_invisible_primary_key=0
# Columns(`id` INT NOT NULL,
# `c1` BIT(1),
# `c3` TEXT CHARSET utf8mb4 COLLATE utf8mb4_0900_ai_ci)
# Primary Key(id)
# at 1509
#240419 9:35:26 server id 1 end_log_pos 1555 CRC32 0x2571c7db Write_rows: table id 90 flags: STMT_END_FBINLOG '
vh4iZhMBAAAATQAAAOUFAAAAAFoAAAAAAAEABG15ZGIABHRlc3QAAwMQ/AMBAAIGAQEAAgP8/wAE
CQJpZAJjMQJjMwgBAAwB4Jtfqx0=
vh4iZh4BAAAALgAAABMGAAAAAFoAAAAAAAEAAgAD/wAIAAAAAAMAYnll28dxJQ==
'/*!*/;
### INSERT INTO `mydb`.`test`
### SET
### @1=8
### @2=b'0'
### @3='bye'
# at 1555
#240419 9:35:26 server id 1 end_log_pos 1586 CRC32 0x7188858d Xid = 281
COMMIT/*!*/; {code}
Thank you.
Best regards,
Emmanuel
Contributor guide
Research direction
The issue names no repository file, test, or entry point. Start by reproducing the MySQL 8.x binlog behavior with binlog_row_metadata = FULL and inspect how Debezium handles the Table_map metadata before row events. Done requires an agreed expected behavior and a regression test covering the shown binlog sequence.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- mysql
- Domain
- databases
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100