mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
dccbb5a6db
Commit a923d6f49c
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.
135 lines
4.5 KiB
Text
135 lines
4.5 KiB
Text
call mtr.add_suppression("BINLOG_BASE64_EVENT: According to the master's version");
|
|
call mtr.add_suppression("BINLOG_BASE64_EVENT: Column 1 of table 'test.char128_utf8' cannot be converted");
|
|
DROP TABLE IF EXISTS t1;
|
|
==== Test BUG#32407 ====
|
|
select * from t1;
|
|
a
|
|
1
|
|
1
|
|
==== Test BINLOG statement w/o FD event ====
|
|
BINLOG '
|
|
SVtYRxMBAAAAKQAAADQBAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE=
|
|
SVtYRxcBAAAAIgAAAFYBAAAQABAAAAAAAAEAAf/+AgAAAA==
|
|
';
|
|
ERROR HY000: The BINLOG statement of type Table_map was not preceded by a format description BINLOG statement
|
|
select * from t1;
|
|
a
|
|
1
|
|
1
|
|
==== Test BINLOG statement with FD event ====
|
|
BINLOG '
|
|
ODdYRw8BAAAAZgAAAGoAAAABAAQANS4xLjIzLXJjLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAA
|
|
AAAAAAAAAAAAAAAAAAA4N1hHEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
|
|
';
|
|
BINLOG '
|
|
TFtYRxMBAAAAKQAAAH8BAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE=
|
|
TFtYRxcBAAAAIgAAAKEBAAAQABAAAAAAAAEAAf/+AwAAAA==
|
|
';
|
|
select * from t1;
|
|
a
|
|
1
|
|
1
|
|
3
|
|
DELETE FROM t1 WHERE a=3;
|
|
BINLOG '
|
|
ODdYRw8BAAAAZgAAAGoAAAABAAQANS4xLjIzLXJjLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAA
|
|
AAAAAAAAAAAAAAAAAAA4N1hHEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
|
|
';
|
|
SET @binlog_fragment_0='
|
|
TFtYRxMBAAAAKQAAAH8BAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE=
|
|
TFtYRxcBAAAAIgAAAKEBAAAQABAAAAAAAAEAAf/+AwAAAA==
|
|
';
|
|
SET @binlog_fragment_1='';
|
|
BINLOG @binlog_fragment_0, @binlog_fragment_1;
|
|
select * from t1;
|
|
a
|
|
1
|
|
1
|
|
3
|
|
SELECT @binlog_fragment_0, @binlog_fragment_1 as 'NULL','NULL';
|
|
@binlog_fragment_0 NULL NULL
|
|
NULL NULL NULL
|
|
==== Test --base64-output=never on a binlog with row events ====
|
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
|
|
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
|
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
|
DELIMITER /*!*/;
|
|
<#>
|
|
ROLLBACK/*!*/;
|
|
<#>
|
|
use `test`/*!*/;
|
|
SET TIMESTAMP=1196959712/*!*/;
|
|
<#>SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
|
|
SET @@session.sql_mode=0/*!*/;
|
|
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
|
|
/*!\C latin1 *//*!*/;
|
|
SET @@session.character_set_client=latin1,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
|
SET @@session.lc_time_names=0/*!*/;
|
|
SET @@session.collation_database=DEFAULT/*!*/;
|
|
create table t1 (a int) engine= myisam
|
|
/*!*/;
|
|
<#>
|
|
<#>
|
|
<#>
|
|
<#>
|
|
<#>
|
|
DELIMITER ;
|
|
# End of log file
|
|
ROLLBACK /* added by mysqlbinlog */;
|
|
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
|
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
|
==== Test non-matching FD event and Row event ====
|
|
BINLOG '
|
|
4CdYRw8BAAAAYgAAAGYAAAAAAAQANS4xLjE1LW5kYi02LjEuMjQtZGVidWctbG9nAAAAAAAAAAAA
|
|
AAAAAAAAAAAAAAAAAADgJ1hHEzgNAAgAEgAEBAQEEgAATwAEGggICAg=
|
|
';
|
|
BINLOG '
|
|
Dl1YRxMBAAAAKQAAADQBAAAAABAAAAAAAAAABHRlc3QAAnQxAAEDAAE=
|
|
Dl1YRxcBAAAAIgAAAFYBAAAQABAAAAAAAAEAAf/+BQAAAA==
|
|
';
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use
|
|
select * from t1;
|
|
a
|
|
1
|
|
1
|
|
3
|
|
CREATE TABLE char128_utf8 (
|
|
i1 INT NOT NULL,
|
|
c CHAR(128) CHARACTER SET utf8 NOT NULL,
|
|
i2 INT NOT NULL);
|
|
CREATE TABLE char63_utf8 (
|
|
i1 INT NOT NULL,
|
|
c CHAR(63) CHARACTER SET utf8 NOT NULL,
|
|
i2 INT NOT NULL);
|
|
BINLOG '
|
|
MuNkSA8BAAAAZgAAAGoAAAAAAAQANS4xLjI1LXJjLWRlYnVnLWxvZwAAAAAAAAAAAAAAAAAAAAAA
|
|
AAAAAAAAAAAAAAAAAAAy42RIEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
|
|
';
|
|
BINLOG '
|
|
3u9kSBMBAAAANgAAAJYBAAAAABAAAAAAAAAABHRlc3QAC2NoYXI2M191dGY4AAMD/gMC/r0A
|
|
3u9kSBcBAAAAKgAAAMABAAAQABAAAAAAAAEAA//4AQAAAAMxMjMBAAAA
|
|
';
|
|
SELECT * FROM char63_utf8;
|
|
i1 c i2
|
|
1 123 1
|
|
BINLOG '
|
|
iONkSBMBAAAANwAAAJkBAAAAABAAAAAAAAAABHRlc3QADGNoYXIxMjhfdXRmOAADA/4DAv6AAA==
|
|
iONkSBcBAAAAKwAAAMQBAAAQABAAAAAAAAEAA//4AQAAAAMAMTIzAQAAAA==
|
|
';
|
|
ERROR HY000: master may suffer from http://bugs.mysql.com/bug.php?id=37426 so slave stops; check error log on slave for more info
|
|
drop table t1, char63_utf8, char128_utf8;
|
|
call mtr.add_suppression("Slave SQL.*master suffers from this bug: http:..bugs.mysql.com.bug.php.id=37426.* error.* 1105");
|
|
call mtr.add_suppression("Slave SQL.*Table definition on master and slave does not match: Column 1 size mismatch.* error.* 1535");
|
|
call mtr.add_suppression("Slave SQL.*Column 1 of table .test.char128_utf8. cannot be converted.* error.* 1677");
|
|
#
|
|
# Bug #54393: crash and/or valgrind errors in
|
|
# mysql_client_binlog_statement
|
|
#
|
|
BINLOG '';
|
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use
|
|
BINLOG '123';
|
|
ERROR HY000: Decoding of base64 string failed
|
|
BINLOG '-2079193929';
|
|
ERROR HY000: Decoding of base64 string failed
|
|
BINLOG 'xç↓%~∙D╒ƒ╡';
|
|
ERROR HY000: Decoding of base64 string failed
|