1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-09 08:01:34 +03:00
Files
mariadb/mysql-test/suite/sys_vars/r/character_set_results_basic.result
Alexander Barkov 46af63bfe2 MDEV-31018 Replica of 10.3, 10.4, <10.5.19 and <10.6.12 to 10.11 will not work when using non-default charset
MDEV-28769 earlier disabled the use if IDs with non-default collations
in statements like:

  SET character_set_results=2/*latin2_czech_cs*/;
  SET character_set_client=2/*latin2_czech_cs*/;
  SET character_set_server=2/*latin2_czech_cs*/;
  SET character_set_connection=2/*latin2_czech_cs*/;

MDEV-30824 later fixed "mysqlbinlog" to dump character set names
instead of IDs in these statements:

< SET @@session.character_set_client=33, ... /*!*/;
> SET @@session.character_set_client=utf8mb3, ... /*!*/;

However, mysqlbinlog from old (pre MDEV-30824) distributions can
still produce incorrect statements with numeric non-default
collation IDs.

New servers should still be able to load old dumps.

Allowing the use of "SET @@character_set_xxx=ID" with numeric
non-default collation IDs but only if:

- the current THD is a true slave thread or
- the current THD a pseudo slave thread
  (loading a mysqlbinlog output).
2023-04-21 18:13:31 +04:00

512 lines
16 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SET @global_start_value = @@global.character_set_results;
SET @@global.character_set_results=@@character_set_client;
SELECT @@global.character_set_results;
@@global.character_set_results
latin1
SET @session_start_value = @@character_set_results;
SELECT @session_start_value;
@session_start_value
latin1
SET @session_start_value = @@local.character_set_results;
SELECT @session_start_value;
@session_start_value
latin1
SET @session_start_value = @@session.character_set_results;
SELECT @session_start_value;
@session_start_value
latin1
'#--------------------FN_DYNVARS_013_01------------------#'
SELECT character_set_results;
ERROR 42S22: Unknown column 'character_set_results' in 'field list'
SET character_set_results=utf8;
SELECT @@session.character_set_results;
@@session.character_set_results
utf8mb3
SET session character_set_results=utf8;
SELECT session character_set_results;
ERROR 42S22: Unknown column 'session' in 'field list'
SET global character_set_results=utf8;
SELECT global character_set_results;
ERROR 42S22: Unknown column 'global' in 'field list'
'#--------------------FN_DYNVARS_013_02-------------------------#'
SET @@character_set_results = latin5;
SET @@character_set_results = DEFAULT;
SELECT @@character_set_results = @@global.character_set_results;
@@character_set_results = @@global.character_set_results
1
SET @@global.character_set_results = latin5;
SET @@global.character_set_results = DEFAULT;
SELECT @@global.character_set_results= @global_start_value;
@@global.character_set_results= @global_start_value
1
'#--------------------FN_DYNVARS_013_03-------------------------#'
SET @@session.character_set_results = utf8;
SELECT @@session.character_set_results;
@@session.character_set_results
utf8mb3
SET @@global.character_set_results = latin2;
SELECT @@global.character_set_results;
@@global.character_set_results
latin2
SELECT @@session.character_set_results AS res_is_utf8;
res_is_utf8
utf8mb3
SET @@session.character_set_results = latin5;
SELECT @@session.character_set_results;
@@session.character_set_results
latin5
SELECT @@global.character_set_results AS res_is_latin2;
res_is_latin2
latin2
SELECT @@global.character_set_results=@@session.character_set_results
AS res_is_false;
res_is_false
0
'#--------------------FN_DYNVARS_013_04-------------------------#'
SELECT @@character_set_results = @@session.character_set_results AS res;
res
1
SELECT @@character_set_results = @@local.character_set_results AS res;
res
1
'#--------------------FN_DYNVARS_013_05-------------------------#'
SET @@character_set_results = utf8 + latin2;
ERROR 42S22: Unknown column 'utf8' in 'field list'
'#--------------------FN_DYNVARS_013_06-------------------------#'
SET @@session.character_set_results = big5;
SELECT @@session.character_set_results;
@@session.character_set_results
big5
SET @@session.character_set_results = dec8;
SELECT @@session.character_set_results;
@@session.character_set_results
dec8
SET @@session.character_set_results = cp850;
SELECT @@session.character_set_results;
@@session.character_set_results
cp850
SET @@session.character_set_results = hp8;
SELECT @@session.character_set_results;
@@session.character_set_results
hp8
SET @@session.character_set_results = koi8r;
SELECT @@session.character_set_results;
@@session.character_set_results
koi8r
SET @@session.character_set_results = latin1;
SELECT @@session.character_set_results;
@@session.character_set_results
latin1
SET @@session.character_set_results = latin2;
SELECT @@session.character_set_results;
@@session.character_set_results
latin2
SET @@session.character_set_results = swe7;
SELECT @@session.character_set_results;
??session.character_set_results
swe7
SET @@session.character_set_results = ascii;
SELECT @@session.character_set_results;
@@session.character_set_results
ascii
SET @@session.character_set_results = ujis;
SELECT @@session.character_set_results;
@@session.character_set_results
ujis
SET @@session.character_set_results = sjis;
SELECT @@session.character_set_results;
@@session.character_set_results
sjis
SET @@session.character_set_results = hebrew;
SELECT @@session.character_set_results;
@@session.character_set_results
hebrew
SET @@session.character_set_results = tis620;
SELECT @@session.character_set_results;
@@session.character_set_results
tis620
SET @@session.character_set_results = euckr;
SELECT @@session.character_set_results;
@@session.character_set_results
euckr
SET @@session.character_set_results = koi8u;
SELECT @@session.character_set_results;
@@session.character_set_results
koi8u
SET @@session.character_set_results = gb2312;
SELECT @@session.character_set_results;
@@session.character_set_results
gb2312
SET @@session.character_set_results = greek;
SELECT @@session.character_set_results;
@@session.character_set_results
greek
SET @@session.character_set_results = cp1250;
SELECT @@session.character_set_results;
@@session.character_set_results
cp1250
SET @@session.character_set_results = gbk;
SELECT @@session.character_set_results;
@@session.character_set_results
gbk
SET @@session.character_set_results = latin5;
SELECT @@session.character_set_results;
@@session.character_set_results
latin5
SET @@session.character_set_results = armscii8;
SELECT @@session.character_set_results;
@@session.character_set_results
armscii8
SET @@session.character_set_results = utf8;
SELECT @@session.character_set_results;
@@session.character_set_results
utf8mb3
SET @@session.character_set_results = ucs2;
SELECT @@session.character_set_results;
ucs2
SET @@session.character_set_results = cp866;
SELECT @@session.character_set_results;
@@session.character_set_results
cp866
SET @@session.character_set_results = keybcs2;
SELECT @@session.character_set_results;
@@session.character_set_results
keybcs2
SET @@session.character_set_results = macce;
SELECT @@session.character_set_results;
@@session.character_set_results
macce
SET @@session.character_set_results = macroman;
SELECT @@session.character_set_results;
@@session.character_set_results
macroman
SET @@session.character_set_results = cp852;
SELECT @@session.character_set_results;
@@session.character_set_results
cp852
SET @@session.character_set_results = latin7;
SELECT @@session.character_set_results;
@@session.character_set_results
latin7
SET @@session.character_set_results = cp1251;
SELECT @@session.character_set_results;
@@session.character_set_results
cp1251
SET @@session.character_set_results = cp1256;
SELECT @@session.character_set_results;
@@session.character_set_results
cp1256
SET @@session.character_set_results = cp1257;
SELECT @@session.character_set_results;
@@session.character_set_results
cp1257
SET @@session.character_set_results = binary;
SELECT @@session.character_set_results;
@@session.character_set_results
binary
SET @@session.character_set_results = geostd8;
SELECT @@session.character_set_results;
@@session.character_set_results
geostd8
SET @@session.character_set_results = cp932;
SELECT @@session.character_set_results;
@@session.character_set_results
cp932
SET @@session.character_set_results = eucjpms;
SELECT @@session.character_set_results;
@@session.character_set_results
eucjpms
'#--------------------FN_DYNVARS_013_07-------------------------#'
SET @@global.character_set_results = big5;
SELECT @@global.character_set_results;
@@global.character_set_results
big5
SET @@global.character_set_results = dec8;
SELECT @@global.character_set_results;
@@global.character_set_results
dec8
SET @@global.character_set_results = cp850;
SELECT @@global.character_set_results;
@@global.character_set_results
cp850
SET @@global.character_set_results = hp8;
SELECT @@global.character_set_results;
@@global.character_set_results
hp8
SET @@global.character_set_results = koi8r;
SELECT @@global.character_set_results;
@@global.character_set_results
koi8r
SET @@global.character_set_results = latin1;
SELECT @@global.character_set_results;
@@global.character_set_results
latin1
SET @@global.character_set_results = latin2;
SELECT @@global.character_set_results;
@@global.character_set_results
latin2
SET @@global.character_set_results = swe7;
SELECT @@global.character_set_results;
@@global.character_set_results
swe7
SET @@global.character_set_results = ascii;
SELECT @@global.character_set_results;
@@global.character_set_results
ascii
SET @@global.character_set_results = ujis;
SELECT @@global.character_set_results;
@@global.character_set_results
ujis
SET @@global.character_set_results = sjis;
SELECT @@global.character_set_results;
@@global.character_set_results
sjis
SET @@global.character_set_results = hebrew;
SELECT @@global.character_set_results;
@@global.character_set_results
hebrew
SET @@global.character_set_results = tis620;
SELECT @@global.character_set_results;
@@global.character_set_results
tis620
SET @@global.character_set_results = euckr;
SELECT @@global.character_set_results;
@@global.character_set_results
euckr
SET @@global.character_set_results = koi8u;
SELECT @@global.character_set_results;
@@global.character_set_results
koi8u
SET @@global.character_set_results = gb2312;
SELECT @@global.character_set_results;
@@global.character_set_results
gb2312
SET @@global.character_set_results = greek;
SELECT @@global.character_set_results;
@@global.character_set_results
greek
SET @@global.character_set_results = cp1250;
SELECT @@global.character_set_results;
@@global.character_set_results
cp1250
SET @@global.character_set_results = gbk;
SELECT @@global.character_set_results;
@@global.character_set_results
gbk
SET @@global.character_set_results = latin5;
SELECT @@global.character_set_results;
@@global.character_set_results
latin5
SET @@global.character_set_results = armscii8;
SELECT @@global.character_set_results;
@@global.character_set_results
armscii8
SET @@global.character_set_results = utf8;
SELECT @@global.character_set_results;
@@global.character_set_results
utf8mb3
SET @@global.character_set_results = ucs2;
SELECT @@global.character_set_results;
@@global.character_set_results
ucs2
SET @@global.character_set_results = cp866;
SELECT @@global.character_set_results;
@@global.character_set_results
cp866
SET @@global.character_set_results = keybcs2;
SELECT @@global.character_set_results;
@@global.character_set_results
keybcs2
SET @@global.character_set_results = macce;
SELECT @@global.character_set_results;
@@global.character_set_results
macce
SET @@global.character_set_results = macroman;
SELECT @@global.character_set_results;
@@global.character_set_results
macroman
SET @@global.character_set_results = cp852;
SELECT @@global.character_set_results;
@@global.character_set_results
cp852
SET @@global.character_set_results = latin7;
SELECT @@global.character_set_results;
@@global.character_set_results
latin7
SET @@global.character_set_results = cp1251;
SELECT @@global.character_set_results;
@@global.character_set_results
cp1251
SET @@global.character_set_results = cp1256;
SELECT @@global.character_set_results;
@@global.character_set_results
cp1256
SET @@global.character_set_results = cp1257;
SELECT @@global.character_set_results;
@@global.character_set_results
cp1257
SET @@global.character_set_results = binary;
SELECT @@global.character_set_results;
@@global.character_set_results
binary
SET @@global.character_set_results = geostd8;
SELECT @@global.character_set_results;
@@global.character_set_results
geostd8
SET @@global.character_set_results = cp932;
SELECT @@global.character_set_results;
@@global.character_set_results
cp932
SET @@global.character_set_results = eucjpms;
SELECT @@global.character_set_results;
@@global.character_set_results
eucjpms
'#--------------------FN_DYNVARS_013_08-------------------------#'
SET @@character_set_results = UTF8;
SELECT @@character_set_results;
@@character_set_results
utf8mb3
SET @@character_set_results = utf8;
SELECT @@character_set_results;
@@character_set_results
utf8mb3
SET @@global.character_set_results = uTf8;
SELECT @@global.character_set_results;
@@global.character_set_results
utf8mb3
'#--------------------FN_DYNVARS_013_09-------------------------#'
SET @@character_set_results = 1;
SELECT @@character_set_results;
@@character_set_results
big5
# latin2_czech_cs is not a default collation
SET @@character_set_results = 2;
ERROR 42000: Unknown character set: '2'
SET @@character_set_results = 3;
SELECT @@character_set_results;
@@character_set_results
dec8
SET @@character_set_results = 36;
SELECT @@character_set_results;
@@character_set_results
cp866
# cp1250_polish_ci is not a default collation
SET @@character_set_results = 99;
ERROR 42000: Unknown character set: '99'
# Collation ID 100 does not exist
SET @@character_set_results = 100;
ERROR 42000: Unknown character set: '100'
SET @@global.character_set_results = 1;
SELECT @@global.character_set_results;
@@global.character_set_results
big5
# latin2_czech_cs is not a default collation
SET @@global.character_set_results = 2;
ERROR 42000: Unknown character set: '2'
SET @@global.character_set_results = 3;
SELECT @@global.character_set_results;
@@global.character_set_results
dec8
SET @@global.character_set_results = 36;
SELECT @@global.character_set_results;
@@global.character_set_results
cp866
# cp1250_polish_ci is not a default collation
SET @@global.character_set_results = 99;
ERROR 42000: Unknown character set: '99'
# Collation ID 100 does not exist
SET @@global.character_set_results = 100;
ERROR 42000: Unknown character set: '100'
SET @total_charset = (SELECT count(*) FROM INFORMATION_SCHEMA.CHARACTER_SETS);
SELECT @total_charset;
@total_charset
40
'Bug # 34843: character sets are mapped in such a way that 100 and following';
'numbers gives error, and before 100 the 36 mapped wraps arround several times.';
'#--------------------FN_DYNVARS_013_10-------------------------#'
SET @@character_set_results = abc;
ERROR 42000: Unknown character set: 'abc'
SET @@character_set_results = 1utf8;
ERROR 42000: Unknown character set: '1utf8'
SET @@character_set_results = 0;
ERROR 42000: Unknown character set: '0'
SET @@character_set_results = .1;
ERROR 42000: Incorrect argument type to variable 'character_set_results'
SET @@character_set_results = -1;
ERROR 42000: Unknown character set: '-1'
SET @@character_set_results = "";
ERROR 42000: Unknown character set: ''
SET @@character_set_results = 'utf';
ERROR 42000: Unknown character set: 'utf'
SET @@character_set_results = true;
SELECT @@character_set_results AS res_with_true;
res_with_true
big5
SET @@character_set_results = ON;
ERROR 42000: Unknown character set: 'ON'
'#--------------------FN_DYNVARS_013_11-------------------------#'
SET @@global.character_set_results = "'latin2'";
ERROR 42000: Unknown character set: ''latin2''
SET @@global.character_set_results = 1utf8;
ERROR 42000: Unknown character set: '1utf8'
SET @@global.character_set_results = 0;
ERROR 42000: Unknown character set: '0'
SET @@global.character_set_results = 0.1;
ERROR 42000: Incorrect argument type to variable 'character_set_results'
SET @@global.character_set_results = -1;
ERROR 42000: Unknown character set: '-1'
SET @@global.character_set_results = "";
ERROR 42000: Unknown character set: ''
SET @@global.character_set_results = 'utf';
ERROR 42000: Unknown character set: 'utf'
SET @@global.character_set_results = true;
SET @@global.character_set_results = ON;
ERROR 42000: Unknown character set: 'ON'
'#--------------------FN_DYNVARS_013_12-------------------------#'
SELECT @@global.character_set_results =
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='character_set_results') AS res;
res
1
SET @@global.character_set_results = 1;
SELECT @@global.character_set_results;
@@global.character_set_results
big5
SELECT @@global.character_set_results =
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='character_set_results') AS res;
res
1
'#--------------------FN_DYNVARS_013_13-------------------------#'
SELECT @@character_set_results =
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
WHERE VARIABLE_NAME='character_set_results') AS res;
res
1
SELECT @@local.character_set_results =
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
WHERE VARIABLE_NAME='character_set_results') AS res;
res
1
SELECT @@session.character_set_results =
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
WHERE VARIABLE_NAME='character_set_results') AS res;
res
1
#
# MDEV-31018 Replica of 10.3, 10.4, <10.5.19 and <10.6.12 to 10.11 will not work when using non-default charset
#
SET character_set_results=2/*latin2_czech_cs*/;
ERROR 42000: Unknown character set: '2'
SET @@pseudo_slave_mode=1;
SET character_set_results=2;
SHOW VARIABLES LIKE 'character_set_results';
Variable_name Value
character_set_results latin2
SET @@pseudo_slave_mode=0;
Warnings:
Warning 1231 Slave applier execution mode not active, statement ineffective.
SET @@global.character_set_results = @global_start_value;
SET @@session.character_set_results = @session_start_value;