Skip to content

Conversation

@percona-ysorokin
Copy link
Collaborator

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

Added new template specializations for 'generic_post_header_impl' and 'generic_body_impl' for 'code_type::previous_gtids_log' ('PREVIOUS_GTIDS_LOG' event).

'binsrv::gtids::gtid_set' class is now capable of deserializing binary data from the blob encoded into the 'PREVIOUS_GTIDS_LOG' event.

Introduced 'binsrv::gtids::gtid_set_storage' typedef - a vector-like container with 96 bytes SBO (based on 'boost::container::small_vector'). This type is used to store the blob mentioned above. The number 96 is chosen so that the size of the 'binsrv::event::event::body_variant' wouldnt grow.

'binsrv::gtids::gtid_set' interface extended with additional method 'add_interval()' for adding gno ranges.

Fixed the way how 'binsrv::gtids::gtid_set' is printed to std::ostream - it now corresponds to the format used by '@@gtid_executed' MySQL system variable.

Introduced new class 'binsrv::gtids::uuid' as a wrapper around 'boost::uuids::uuid' that can be constructed from 'binsrv::gtids::uuid_storage'.

Unit tests updated to cover new methods in 'binsrv::gtids::gtid_set'.

Added new 'test_uuid' unit test.

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

Added new template specializations for 'generic_post_header_impl' and
'generic_body_impl' for 'code_type::previous_gtids_log' ('PREVIOUS_GTIDS_LOG' event).

'binsrv::gtids::gtid_set' class is now capable of deserializing binary data from the
blob encoded into the 'PREVIOUS_GTIDS_LOG' event.

Introduced 'binsrv::gtids::gtid_set_storage' typedef  - a vector-like container with
96 bytes SBO (based on 'boost::container::small_vector'). This type is used to store
the blob mentioned above. The number 96 is chosen so that the size of the
'binsrv::event::event::body_variant' wouldnt grow.

'binsrv::gtids::gtid_set' interface extended with additional method 'add_interval()'
for adding gno ranges.

Fixed the way how 'binsrv::gtids::gtid_set' is printed to std::ostream - it now corresponds to the format used by '@@gtid_executed' MySQL system variable.

Introduced new class 'binsrv::gtids::uuid' as a wrapper around 'boost::uuids::uuid'
that can be constructed from 'binsrv::gtids::uuid_storage'.

Unit tests updated to cover new methods in 'binsrv::gtids::gtid_set'.

Added new 'test_uuid' unit test.
@percona-ysorokin percona-ysorokin merged commit 3c9124f into main Nov 28, 2025
7 checks passed
@percona-ysorokin percona-ysorokin deleted the previous_gtids_log_event branch November 28, 2025 02:38
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.

2 participants