mirror of
https://github.com/MariaDB/server.git
synced 2025-11-10 23:02:54 +03:00
These system variables: @@character_set_client @@character_set_connection @@character_set_database @@character_set_filesystem @@character_set_results @@character_set_server can now be set in numeric format only to IDs of default collations, e.g.: SET @@character_set_xxx=9; -- OK (latin2_general_ci is default) SET @@character_set_xxx=2; -- ERROR (latin2_czech_cs is not default) SET @@character_set_xxx=21; -- ERROR (latin2_hungarian_ci is not default) Before this change the server accepted IDs of non-default collations so all three examples above worked without errors, but this could lead to unexpected behavior in later statements.
505 lines
15 KiB
Plaintext
505 lines
15 KiB
Plaintext
SET @global_start_value = @@global.character_set_client;
|
||
SET @@global.character_set_client=@@character_set_client;
|
||
SET @session_start_value = @@character_set_client;
|
||
SELECT @session_start_value;
|
||
@session_start_value
|
||
latin1
|
||
SET @session_start_value = @@local.character_set_client;
|
||
SELECT @session_start_value;
|
||
@session_start_value
|
||
latin1
|
||
SET @session_start_value = @@session.character_set_client;
|
||
SELECT @session_start_value;
|
||
@session_start_value
|
||
latin1
|
||
'#--------------------FN_DYNVARS_010_01------------------#'
|
||
SELECT character_set_client;
|
||
ERROR 42S22: Unknown column 'character_set_client' in 'field list'
|
||
SET character_set_client=utf8;
|
||
SELECT @@session.character_set_client;
|
||
@@session.character_set_client
|
||
utf8mb3
|
||
SET session character_set_client=utf8;
|
||
SELECT session character_set_client;
|
||
ERROR 42S22: Unknown column 'session' in 'field list'
|
||
SET global character_set_client=utf8;
|
||
SELECT global character_set_client;
|
||
ERROR 42S22: Unknown column 'global' in 'field list'
|
||
'#--------------------FN_DYNVARS_010_02-------------------------#'
|
||
SET @@character_set_client = latin5;
|
||
SET @@character_set_client = DEFAULT;
|
||
SELECT @@character_set_client = @@global.character_set_client;
|
||
@@character_set_client = @@global.character_set_client
|
||
1
|
||
SET @@global.character_set_client = latin5;
|
||
SET @@global.character_set_client = DEFAULT;
|
||
SELECT @@global.character_set_client= @global_start_value;
|
||
@@global.character_set_client= @global_start_value
|
||
1
|
||
'#--------------------FN_DYNVARS_010_03-------------------------#'
|
||
SET @@session.character_set_client = utf8;
|
||
SELECT @@session.character_set_client;
|
||
@@session.character_set_client
|
||
utf8mb3
|
||
SET @@global.character_set_client = latin2;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
latin2
|
||
SELECT @@session.character_set_client AS res_is_utf8;
|
||
res_is_utf8
|
||
utf8mb3
|
||
SET @@session.character_set_client = latin5;
|
||
SELECT @@session.character_set_client;
|
||
@@session.character_set_client
|
||
latin5
|
||
SELECT @@global.character_set_client AS res_is_latin2;
|
||
res_is_latin2
|
||
latin2
|
||
SELECT @@global.character_set_client=@@session.character_set_client
|
||
AS res_is_false;
|
||
res_is_false
|
||
0
|
||
'#--------------------FN_DYNVARS_010_04-------------------------#'
|
||
SELECT @@character_set_client = @@session.character_set_client AS res;
|
||
res
|
||
1
|
||
SELECT @@character_set_client = @@local.character_set_client AS res;
|
||
res
|
||
1
|
||
'#--------------------FN_DYNVARS_010_05-------------------------#'
|
||
SET @@character_set_client = utf8 + latin2;
|
||
ERROR 42S22: Unknown column 'utf8' in 'field list'
|
||
'#--------------------FN_DYNVARS_010_06-------------------------#'
|
||
SET @@character_set_client = big5;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
big5
|
||
SET @@character_set_client = dec8;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
dec8
|
||
SET @@character_set_client = cp850;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
cp850
|
||
SET @@character_set_client = hp8;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
hp8
|
||
SET @@character_set_client = koi8r;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
koi8r
|
||
SET @@character_set_client = latin1;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
latin1
|
||
SET @@character_set_client = latin2;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
latin2
|
||
SET @@character_set_client = swe7;
|
||
SELECT @@character_set_client;
|
||
<EFBFBD><EFBFBD>character_set_client
|
||
swe7
|
||
SET @@character_set_client = ascii;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
ascii
|
||
SET @@character_set_client = ujis;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
ujis
|
||
SET @@character_set_client = sjis;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
sjis
|
||
SET @@character_set_client = hebrew;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
hebrew
|
||
SET @@character_set_client = tis620;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
tis620
|
||
SET @@character_set_client = euckr;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
euckr
|
||
SET @@character_set_client = koi8u;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
koi8u
|
||
SET @@character_set_client = gb2312;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
gb2312
|
||
SET @@character_set_client = greek;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
greek
|
||
SET @@character_set_client = cp1250;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
cp1250
|
||
SET @@character_set_client = gbk;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
gbk
|
||
SET @@character_set_client = latin5;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
latin5
|
||
SET @@character_set_client = armscii8;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
armscii8
|
||
SET @@character_set_client = utf8;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
utf8mb3
|
||
SET @@character_set_client = utf8mb4;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
utf8mb4
|
||
SET @@character_set_client = ucs2;
|
||
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'ucs2'
|
||
SET @@character_set_client = utf16;
|
||
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'utf16'
|
||
SET @@character_set_client = utf32;
|
||
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'utf32'
|
||
SET @@character_set_client = cp866;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
cp866
|
||
SET @@character_set_client = keybcs2;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
keybcs2
|
||
SET @@character_set_client = macce;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
macce
|
||
SET @@character_set_client = macroman;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
macroman
|
||
SET @@character_set_client = cp852;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
cp852
|
||
SET @@character_set_client = latin7;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
latin7
|
||
SET @@character_set_client = cp1251;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
cp1251
|
||
SET @@character_set_client = cp1256;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
cp1256
|
||
SET @@character_set_client = cp1257;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
cp1257
|
||
SET @@character_set_client = binary;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
binary
|
||
SET @@character_set_client = geostd8;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
geostd8
|
||
SET @@character_set_client = cp932;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
cp932
|
||
SET @@character_set_client = eucjpms;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
eucjpms
|
||
'#--------------------FN_DYNVARS_010_07-------------------------#'
|
||
SET @@global.character_set_client = big5;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
big5
|
||
SET @@global.character_set_client = dec8;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
dec8
|
||
SET @@global.character_set_client = cp850;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
cp850
|
||
SET @@global.character_set_client = hp8;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
hp8
|
||
SET @@global.character_set_client = koi8r;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
koi8r
|
||
SET @@global.character_set_client = latin1;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
latin1
|
||
SET @@global.character_set_client = latin2;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
latin2
|
||
SET @@global.character_set_client = swe7;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
swe7
|
||
SET @@global.character_set_client = ascii;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
ascii
|
||
SET @@global.character_set_client = ujis;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
ujis
|
||
SET @@global.character_set_client = sjis;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
sjis
|
||
SET @@global.character_set_client = hebrew;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
hebrew
|
||
SET @@global.character_set_client = tis620;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
tis620
|
||
SET @@global.character_set_client = euckr;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
euckr
|
||
SET @@global.character_set_client = koi8u;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
koi8u
|
||
SET @@global.character_set_client = gb2312;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
gb2312
|
||
SET @@global.character_set_client = greek;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
greek
|
||
SET @@global.character_set_client = cp1250;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
cp1250
|
||
SET @@global.character_set_client = gbk;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
gbk
|
||
SET @@global.character_set_client = latin5;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
latin5
|
||
SET @@global.character_set_client = armscii8;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
armscii8
|
||
SET @@global.character_set_client = utf8;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
utf8mb3
|
||
SET @@global.character_set_client = ucs2;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
utf8mb3
|
||
SET @@global.character_set_client = cp866;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
cp866
|
||
SET @@global.character_set_client = keybcs2;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
keybcs2
|
||
SET @@global.character_set_client = macce;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
macce
|
||
SET @@global.character_set_client = macroman;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
macroman
|
||
SET @@global.character_set_client = cp852;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
cp852
|
||
SET @@global.character_set_client = latin7;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
latin7
|
||
SET @@global.character_set_client = cp1251;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
cp1251
|
||
SET @@global.character_set_client = cp1256;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
cp1256
|
||
SET @@global.character_set_client = cp1257;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
cp1257
|
||
SET @@global.character_set_client = binary;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
binary
|
||
SET @@global.character_set_client = geostd8;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
geostd8
|
||
SET @@global.character_set_client = cp932;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
cp932
|
||
SET @@global.character_set_client = eucjpms;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
eucjpms
|
||
'#--------------------FN_DYNVARS_010_08-------------------------#'
|
||
SET @@character_set_client = UTF8;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
utf8mb3
|
||
SET @@character_set_client = utf8;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
utf8mb3
|
||
SET @@global.character_set_client = uTf8;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
utf8mb3
|
||
'#--------------------FN_DYNVARS_010_09-------------------------#'
|
||
SET @@character_set_client = 1;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
big5
|
||
# latin2_czech_cs is not a default collation
|
||
SET @@character_set_client = 2;
|
||
ERROR 42000: Unknown character set: '2'
|
||
SET @@character_set_client = 3;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
dec8
|
||
SET @@character_set_client = 36;
|
||
SELECT @@character_set_client;
|
||
@@character_set_client
|
||
cp866
|
||
# cp1250_polish_ci is not a default collation
|
||
SET @@character_set_client = 99;
|
||
ERROR 42000: Unknown character set: '99'
|
||
# Collation ID 100 does not exist
|
||
SET @@character_set_client = 100;
|
||
ERROR 42000: Unknown character set: '100'
|
||
SET @@global.character_set_client = 1;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
big5
|
||
# latin2_czech_cs is not a default collation
|
||
SET @@global.character_set_client = 2;
|
||
ERROR 42000: Unknown character set: '2'
|
||
SET @@global.character_set_client = 3;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
dec8
|
||
SET @@global.character_set_client = 36;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
cp866
|
||
# cp1250_polish_ci is not a default collation
|
||
SET @@global.character_set_client = 99;
|
||
ERROR 42000: Unknown character set: '99'
|
||
# Collation ID 100 does not exist
|
||
SET @@global.character_set_client = 100;
|
||
ERROR 42000: Unknown character set: '100'
|
||
SET @total_charset = (SELECT count(*) FROM INFORMATION_SCHEMA.CHARACTER_SETS);
|
||
SELECT @total_charset;
|
||
@total_charset
|
||
40
|
||
'#--------------------FN_DYNVARS_010_10-------------------------#'
|
||
SET @@character_set_client = abc;
|
||
ERROR 42000: Unknown character set: 'abc'
|
||
SET @@character_set_client = 1utf8;
|
||
ERROR 42000: Unknown character set: '1utf8'
|
||
SET @@character_set_client = 0;
|
||
ERROR 42000: Unknown character set: '0'
|
||
SET @@character_set_client = 1.1;
|
||
ERROR 42000: Incorrect argument type to variable 'character_set_client'
|
||
SET @@character_set_client = -1;
|
||
ERROR 42000: Unknown character set: '-1'
|
||
SET @@character_set_client = '';
|
||
ERROR 42000: Unknown character set: ''
|
||
SET @@character_set_client = 'utf';
|
||
ERROR 42000: Unknown character set: 'utf'
|
||
SET @@character_set_client = true;
|
||
SELECT @@character_set_client AS res_with_true;
|
||
res_with_true
|
||
big5
|
||
SET @@character_set_client = ON;
|
||
ERROR 42000: Unknown character set: 'ON'
|
||
'#--------------------FN_DYNVARS_010_11-------------------------#'
|
||
SET @@global.character_set_client = abc;
|
||
ERROR 42000: Unknown character set: 'abc'
|
||
SET @@global.character_set_client = 1utf8;
|
||
ERROR 42000: Unknown character set: '1utf8'
|
||
SET @@global.character_set_client = 0;
|
||
ERROR 42000: Unknown character set: '0'
|
||
SET @@global.character_set_client = 1.1;
|
||
ERROR 42000: Incorrect argument type to variable 'character_set_client'
|
||
SET @@global.character_set_client = -1;
|
||
ERROR 42000: Unknown character set: '-1'
|
||
SET @@global.character_set_client = '';
|
||
ERROR 42000: Unknown character set: ''
|
||
SET @@global.character_set_client = 'utf';
|
||
ERROR 42000: Unknown character set: 'utf'
|
||
SET @@global.character_set_client = true;
|
||
SET @@global.character_set_client = ON;
|
||
ERROR 42000: Unknown character set: 'ON'
|
||
'#--------------------FN_DYNVARS_010_12-------------------------#'
|
||
SELECT @@global.character_set_client =
|
||
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
||
WHERE VARIABLE_NAME='character_set_client') AS res;
|
||
res
|
||
1
|
||
SET @@global.character_set_client = 1;
|
||
SELECT @@global.character_set_client;
|
||
@@global.character_set_client
|
||
big5
|
||
SELECT @@global.character_set_client =
|
||
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
||
WHERE VARIABLE_NAME='character_set_client') AS res;
|
||
res
|
||
1
|
||
'#--------------------FN_DYNVARS_010_13-------------------------#'
|
||
SELECT @@character_set_client =
|
||
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
|
||
WHERE VARIABLE_NAME='character_set_client') AS res;
|
||
res
|
||
1
|
||
SELECT @@local.character_set_client =
|
||
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
|
||
WHERE VARIABLE_NAME='character_set_client') AS res;
|
||
res
|
||
1
|
||
SELECT @@session.character_set_client =
|
||
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
|
||
WHERE VARIABLE_NAME='character_set_client') AS res;
|
||
res
|
||
1
|
||
#
|
||
# MDEV-28769 Assertion `(m_ci->state & 32) || m_with_collate' failed in Lex_exact_charset_opt_extended_collate::Lex_exact_charset_opt_extended_collate on SET NAMES
|
||
#
|
||
SET GLOBAL character_set_client=2;
|
||
ERROR 42000: Unknown character set: '2'
|
||
SET @@global.character_set_client = @global_start_value;
|
||
SET @@session.character_set_client = @session_start_value;
|