Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-35643

Add support for MySQL 8.0 binlog events

Details

    Description

      MySQL 8.0 has added the following new events in the MySQL binary log

      PARTIAL_UPDATE_ROWS_EVENT
      TRANSACTION_PAYLOAD_EVENT
      HEARTBEAT_LOG_EVENT_V2

      • PARTIAL_UPDATE_ROWS_EVENT is used by MySQL to generate update
        statements using JSON_SET, JSON_REPLACE and JSON_REMOVE to make
        update of JSON columns more efficient. These events can be
        disabled by setting 'binlog-row-value-options=""'
      • TRANSACTION_PAYLOAD_EVENT is used by MySQL to signal that a
        row event is compressed. It an be disably by setting
        'binlog_transaction_compression=0'.
      • HEARTBEAT_LOG_EVENT_V2 is written to the binary log many times
        per seconds. It can be ignored by the server.

      Attachments

        Issue Links

          Activity

            Hi susil.behera!

            This work is done in branch bb-10.6-monty. Can you please test it?

            bnestere Brandon Nesterenko added a comment - Hi susil.behera ! This work is done in branch bb-10.6-monty . Can you please test it?
            susil.behera Susil Behera added a comment -

            monty I've a MySQL8.0.35 -> MariaDB setup. I'm seeing that the slave errors out with Last_Error: Error 'Character set '#255' is not a compiled character set and is not specified in the '/test/MDEV-35643-MD171224-mariadb-10.6.21-linux-x86_64-opt/share/charsets/Index.xml' file' on query. Default database: 'db1'. Query: 'CREATE DATABASE db1 CHARACTER SET latin1 COLLATE latin1_general_ci'.

            Note: on MariaDB slave, separately I can create the db with the same above erroring SQL query. It fails only during replication from MySQL8.

            This is blocking my testing. Is this something which must be addressed for the current patch testing or is there a workaround for this?

            susil.behera Susil Behera added a comment - monty I've a MySQL8.0.35 -> MariaDB setup. I'm seeing that the slave errors out with Last_Error: Error 'Character set '#255' is not a compiled character set and is not specified in the '/test/ MDEV-35643 -MD171224-mariadb-10.6.21-linux-x86_64-opt/share/charsets/Index.xml' file' on query. Default database: 'db1'. Query: 'CREATE DATABASE db1 CHARACTER SET latin1 COLLATE latin1_general_ci' . Note: on MariaDB slave, separately I can create the db with the same above erroring SQL query. It fails only during replication from MySQL8. This is blocking my testing. Is this something which must be addressed for the current patch testing or is there a workaround for this?
            susil.behera Susil Behera added a comment -

            montyplease ignore the above comment as the following settings on MySQL8 has resolved the issue.

            SET NAMES 'latin1';
            SET SESSION collation_server= 'latin1_swedish_ci';
            

            susil.behera Susil Behera added a comment - monty please ignore the above comment as the following settings on MySQL8 has resolved the issue. SET NAMES 'latin1' ; SET SESSION collation_server= 'latin1_swedish_ci' ;
            susil.behera Susil Behera added a comment -

            As per this page binlog_row_value_options = PARTIAL_JSON makes sense only for ROW format. I checked on MySQL 8.0.35, event type Update_rows_partial is logged only when binlog_format = row and binlog_row_value_options = PARTIAL_JSON . So unless we add support for the JSON type in row events we can't test this event.

            susil.behera Susil Behera added a comment - As per this page binlog_row_value_options = PARTIAL_JSON makes sense only for ROW format. I checked on MySQL 8.0.35, event type Update_rows_partial is logged only when binlog_format = row and binlog_row_value_options = PARTIAL_JSON . So unless we add support for the JSON type in row events we can't test this event.

            Pushed to 10.6 branch

            monty Michael Widenius added a comment - Pushed to 10.6 branch

            People

              monty Michael Widenius
              monty Michael Widenius
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.