• Tingyao Nian's avatar
    [MDEV-30824] Fix binlog to use 'String' for setting 'character_set_client' · dccbb5a6
    Tingyao Nian authored
    Commit a923d6f4 disabled numeric setting
    of character_set_* variables with non-default values:
    
      MariaDB [(none)]> set character_set_client=224;
      ERROR 1115 (42000): Unknown character set: '224'
    
    However the corresponding binlog functionality still write numeric
    values for log event, and this will break binlog replay if the value is
    not default. Now make the server use 'String' type for
    'character_set_client' when generating binlog events
    
    Before:
    
      /*!\C utf8mb4 *//*!*/;
      SET @@session.character_set_client=224,@@session.collation_connection=224,@@session.collation_server=33/*!*/;
    
    After:
    
      /*!\C utf8mb4 *//*!*/;
      SET @@session.character_set_client=utf8mb4,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
    
    Note: prior to the previous commit, setting with '224' or '45' or
    'utf8mb4' have the same effect, as they all set the parameter to
    'utf8mb4'.
    
    All new code of the whole pull request, including one or several files
    that are either new files or modified ones, are contributed under the
    BSD-new license. I am contributing on behalf of my employer Amazon Web
    Services, Inc.
    dccbb5a6
binlog_row_annotate.inc 10.2 KB