New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MDEV-30824] Fix binlog to use 'String' for setting 'character_set_client' #2557
Conversation
|
Some test failed due to some MTR tests not updated. I'm addressing them. |
0bf277b
to
fba9477
Compare
…ient' Commit a923d6f 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.
Pushed to 10.5. |
I changed the target version from 10.9 to 10.5, so a "mysqlbinlog" output from versions between 10.5 and 10.8 can also be loaded by a 10.9+ server. |
That makes sense. Thanks for the explanation. |
@abarkov @LinuxJedi @ericherman Can you please make sure that PR reviewers don't close Pull Requests when they could be merged? Now Ting's Github profile will say that his contribution was rejected, and also anybody looking at this PR will not see any link to the commit etc. In a situation like this (and basically any review situation) the reviewer should give feedback "Thanks looks good, please rebase on 10.5", wait for one day for this to happen, and then merge the PR. |
For the record, this was committed to 10.5 in dccbb5a |
Description
Commit a923d6f disabled numeric setting of character_set_* variables with non-default values:
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 event.
Before:
After:
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'.
How can this PR be tested?
MTR binglog related tests are rerecorded. The difference are as expected.
The rest of test cases in main suite all passed.
Basing the PR against the correct MariaDB version
Backward compatibility
The setting of character_set_client originally supports variable type 'String', so this will not compromise any backward compatibility.
PR quality check
Copyright
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.