Skip to content

PS-10007 feature: Implemented support for MySQL Server 8.4 series#62

Merged
percona-ysorokin merged 1 commit intomainfrom
support_8_4_binlog_protocol
Aug 13, 2025
Merged

PS-10007 feature: Implemented support for MySQL Server 8.4 series#62
percona-ysorokin merged 1 commit intomainfrom
support_8_4_binlog_protocol

Conversation

@percona-ysorokin
Copy link
Copy Markdown
Collaborator

https://perconadev.atlassian.net/browse/PS-10007

Added support for binary log events generated by MySQL Server 8.4 LTS. In particular:

  • 'GTID TAGGED' binlog event (which is specific to 8.4 series) is now recognized and handled properly by the parser.
  • Internal event class representing 'FORMAT DESCRIPTION' binlog event can now handle both 8.0 and 8.4 data. In particular in 8.4, the size of the 'common_header_length' array is increased by 1 because of the additional 'GTID TAGGED'.

'binsrv::event::reader_context' class constructor now takes one more parameter 'encoded_server_version' in order to be aware of 8.0/8.4 differences. The value that is passeed as this 'encoded_server_version' argument is extracted from the 'easymysql::connection' object.

Added 'binsrv::event::server_version' class that helps parse / compose MySQL Server version strings in the '..-' format.

Generalized MTR test cases so that they can be run on both 8.0 and 8.4 MySQL Servers.

Reference links updated to point to the 'mysql-8.0.43' code. Added reference links to the 'mysql-8.4.6' code.

https://perconadev.atlassian.net/browse/PS-10007

Added support for binary log events generated by MySQL Server 8.4 LTS.
In particular:
* 'GTID TAGGED' binlog event (which is specific to 8.4 series) is now
  recognized and handled properly by the parser.
* Internal event class representing 'FORMAT DESCRIPTION' binlog event can now
  handle both 8.0 and 8.4 data. In particular in 8.4, the size of the 'common_header_length'
  array is increased by 1 because of the additional 'GTID TAGGED'.

'binsrv::event::reader_context' class constructor now takes one more parameter
'encoded_server_version' in order to be aware of 8.0/8.4 differences. The value
that is passeed as this 'encoded_server_version' argument is extracted from the
'easymysql::connection' object.

Added 'binsrv::event::server_version' class that helps parse / compose MySQL Server
version strings in the '<major>.<minor>.<patch>-<extra>' format.

Generalized MTR test cases so that they can be run on both 8.0 and 8.4 MySQL Servers.

Reference links updated to point to the 'mysql-8.0.43' code.
Added reference links to the 'mysql-8.4.6' code.
@percona-ysorokin percona-ysorokin merged commit 5e4a501 into main Aug 13, 2025
7 checks passed
@percona-ysorokin percona-ysorokin deleted the support_8_4_binlog_protocol branch August 13, 2025 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant