mirror of
https://github.com/MariaDB/server.git
synced 2025-08-09 22:24:09 +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.
497 lines
16 KiB
Plaintext
497 lines
16 KiB
Plaintext
SET @global_start_value = @@global.character_set_database;
|
|
SET @@global.character_set_database=@@character_set_client;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
latin1
|
|
SET @session_start_value = @@character_set_database;
|
|
SELECT @session_start_value;
|
|
@session_start_value
|
|
latin1
|
|
SET @session_start_value = @@local.character_set_database;
|
|
SELECT @session_start_value;
|
|
@session_start_value
|
|
latin1
|
|
SET @session_start_value = @@session.character_set_database;
|
|
SELECT @session_start_value;
|
|
@session_start_value
|
|
latin1
|
|
'#--------------------FN_DYNVARS_012_01------------------#'
|
|
SELECT character_set_database;
|
|
ERROR 42S22: Unknown column 'character_set_database' in 'field list'
|
|
SET character_set_database=utf8;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
utf8mb3
|
|
SET session character_set_database=utf8;
|
|
SELECT session character_set_database;
|
|
ERROR 42S22: Unknown column 'session' in 'field list'
|
|
SET global character_set_database=utf8;
|
|
SELECT global character_set_database;
|
|
ERROR 42S22: Unknown column 'global' in 'field list'
|
|
'#--------------------FN_DYNVARS_012_02-------------------------#'
|
|
SET @@character_set_database = latin5;
|
|
SET @@character_set_database = DEFAULT;
|
|
SELECT @@character_set_database AS DEFAULT_VALUE;
|
|
DEFAULT_VALUE
|
|
latin1
|
|
SET @@global.character_set_database = latin5;
|
|
SET @@global.character_set_database = DEFAULT;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
latin1
|
|
'#--------------------FN_DYNVARS_012_03-------------------------#'
|
|
SET @@session.character_set_database = utf8;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
utf8mb3
|
|
SET @@global.character_set_database = latin2;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
latin2
|
|
SELECT @@session.character_set_database AS res_is_utf8;
|
|
res_is_utf8
|
|
utf8mb3
|
|
SET @@session.character_set_database = latin5;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
latin5
|
|
SELECT @@global.character_set_database AS res_is_latin2;
|
|
res_is_latin2
|
|
latin2
|
|
SELECT @@global.character_set_database=@@session.character_set_database
|
|
AS res_is_false;
|
|
res_is_false
|
|
0
|
|
'#--------------------FN_DYNVARS_012_04-------------------------#'
|
|
SELECT @@character_set_database = @@session.character_set_database AS res;
|
|
res
|
|
1
|
|
SELECT @@character_set_database = @@local.character_set_database AS res;
|
|
res
|
|
1
|
|
'#--------------------FN_DYNVARS_012_05-------------------------#'
|
|
SET @@character_set_database = utf8 + latin2;
|
|
ERROR 42S22: Unknown column 'utf8' in 'field list'
|
|
'#--------------------FN_DYNVARS_012_06-------------------------#'
|
|
SET @@session.character_set_database = big5;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
big5
|
|
SET @@session.character_set_database = dec8;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
dec8
|
|
SET @@session.character_set_database = cp850;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
cp850
|
|
SET @@session.character_set_database = hp8;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
hp8
|
|
SET @@session.character_set_database = koi8r;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
koi8r
|
|
SET @@session.character_set_database = latin1;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
latin1
|
|
SET @@session.character_set_database = latin2;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
latin2
|
|
SET @@session.character_set_database = swe7;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
swe7
|
|
SET @@session.character_set_database = ascii;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
ascii
|
|
SET @@session.character_set_database = ujis;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
ujis
|
|
SET @@session.character_set_database = sjis;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
sjis
|
|
SET @@session.character_set_database = hebrew;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
hebrew
|
|
SET @@session.character_set_database = tis620;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
tis620
|
|
SET @@session.character_set_database = euckr;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
euckr
|
|
SET @@session.character_set_database = koi8u;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
koi8u
|
|
SET @@session.character_set_database = gb2312;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
gb2312
|
|
SET @@session.character_set_database = greek;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
greek
|
|
SET @@session.character_set_database = cp1250;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
cp1250
|
|
SET @@session.character_set_database = gbk;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
gbk
|
|
SET @@session.character_set_database = latin5;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
latin5
|
|
SET @@session.character_set_database = armscii8;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
armscii8
|
|
SET @@session.character_set_database = utf8;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
utf8mb3
|
|
SET @@session.character_set_database = ucs2;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
ucs2
|
|
SET @@session.character_set_database = cp866;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
cp866
|
|
SET @@session.character_set_database = keybcs2;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
keybcs2
|
|
SET @@session.character_set_database = macce;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
macce
|
|
SET @@session.character_set_database = macroman;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
macroman
|
|
SET @@session.character_set_database = cp852;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
cp852
|
|
SET @@session.character_set_database = latin7;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
latin7
|
|
SET @@session.character_set_database = cp1251;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
cp1251
|
|
SET @@session.character_set_database = cp1256;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
cp1256
|
|
SET @@session.character_set_database = cp1257;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
cp1257
|
|
SET @@session.character_set_database = binary;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
binary
|
|
SET @@session.character_set_database = geostd8;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
geostd8
|
|
SET @@session.character_set_database = cp932;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
cp932
|
|
SET @@session.character_set_database = eucjpms;
|
|
SELECT @@session.character_set_database;
|
|
@@session.character_set_database
|
|
eucjpms
|
|
'#--------------------FN_DYNVARS_012_07-------------------------#'
|
|
SET @@global.character_set_database = big5;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
big5
|
|
SET @@global.character_set_database = dec8;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
dec8
|
|
SET @@global.character_set_database = cp850;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
cp850
|
|
SET @@global.character_set_database = hp8;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
hp8
|
|
SET @@global.character_set_database = koi8r;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
koi8r
|
|
SET @@global.character_set_database = latin1;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
latin1
|
|
SET @@global.character_set_database = latin2;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
latin2
|
|
SET @@global.character_set_database = swe7;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
swe7
|
|
SET @@global.character_set_database = ascii;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
ascii
|
|
SET @@global.character_set_database = ujis;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
ujis
|
|
SET @@global.character_set_database = sjis;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
sjis
|
|
SET @@global.character_set_database = hebrew;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
hebrew
|
|
SET @@global.character_set_database = tis620;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
tis620
|
|
SET @@global.character_set_database = euckr;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
euckr
|
|
SET @@global.character_set_database = koi8u;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
koi8u
|
|
SET @@global.character_set_database = gb2312;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
gb2312
|
|
SET @@global.character_set_database = greek;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
greek
|
|
SET @@global.character_set_database = cp1250;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
cp1250
|
|
SET @@global.character_set_database = gbk;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
gbk
|
|
SET @@global.character_set_database = latin5;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
latin5
|
|
SET @@global.character_set_database = armscii8;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
armscii8
|
|
SET @@global.character_set_database = utf8;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
utf8mb3
|
|
SET @@global.character_set_database = ucs2;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
ucs2
|
|
SET @@global.character_set_database = cp866;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
cp866
|
|
SET @@global.character_set_database = keybcs2;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
keybcs2
|
|
SET @@global.character_set_database = macce;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
macce
|
|
SET @@global.character_set_database = macroman;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
macroman
|
|
SET @@global.character_set_database = cp852;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
cp852
|
|
SET @@global.character_set_database = latin7;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
latin7
|
|
SET @@global.character_set_database = cp1251;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
cp1251
|
|
SET @@global.character_set_database = cp1256;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
cp1256
|
|
SET @@global.character_set_database = cp1257;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
cp1257
|
|
SET @@global.character_set_database = binary;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
binary
|
|
SET @@global.character_set_database = geostd8;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
geostd8
|
|
SET @@global.character_set_database = cp932;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
cp932
|
|
SET @@global.character_set_database = eucjpms;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
eucjpms
|
|
'#--------------------FN_DYNVARS_012_08-------------------------#'
|
|
SET @@character_set_database = UTF8;
|
|
SELECT @@character_set_database;
|
|
@@character_set_database
|
|
utf8mb3
|
|
SET @@character_set_database = utf8;
|
|
SELECT @@character_set_database;
|
|
@@character_set_database
|
|
utf8mb3
|
|
SET @@global.character_set_database = uTf8;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
utf8mb3
|
|
'#--------------------FN_DYNVARS_012_09-------------------------#'
|
|
SET @@character_set_database = 1;
|
|
SELECT @@character_set_database;
|
|
@@character_set_database
|
|
big5
|
|
# latin2_czech_cs is not a default collation
|
|
SET @@character_set_database = 2;
|
|
ERROR 42000: Unknown character set: '2'
|
|
SET @@character_set_database = 3;
|
|
SELECT @@character_set_database;
|
|
@@character_set_database
|
|
dec8
|
|
SET @@character_set_database = 36;
|
|
SELECT @@character_set_database;
|
|
@@character_set_database
|
|
cp866
|
|
# cp1250_polish_ci is not a default collation
|
|
SET @@character_set_database = 99;
|
|
ERROR 42000: Unknown character set: '99'
|
|
# Collation ID 100 does not exist
|
|
SET @@character_set_database = 100;
|
|
ERROR 42000: Unknown character set: '100'
|
|
SET @@global.character_set_database = 1;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
big5
|
|
# latin2_czech_cs is not a default collation
|
|
SET @@global.character_set_database = 2;
|
|
ERROR 42000: Unknown character set: '2'
|
|
SET @@global.character_set_database = 3;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
dec8
|
|
SET @@global.character_set_database = 36;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
cp866
|
|
# cp1250_polish_ci is not a default collation
|
|
SET @@global.character_set_database = 99;
|
|
ERROR 42000: Unknown character set: '99'
|
|
# Collation ID 100 does not exist
|
|
SET @@global.character_set_database = 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_012_10-------------------------#'
|
|
SET @@character_set_database = "grek";
|
|
ERROR 42000: Unknown character set: 'grek'
|
|
SET @@character_set_database = utf 8;
|
|
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 near '8' at line 1
|
|
SET @@character_set_database = 0;
|
|
ERROR 42000: Unknown character set: '0'
|
|
SET @@character_set_database = 1.1;
|
|
ERROR 42000: Incorrect argument type to variable 'character_set_database'
|
|
SET @@character_set_database = -1;
|
|
ERROR 42000: Unknown character set: '-1'
|
|
SET @@character_set_database = '';
|
|
ERROR 42000: Unknown character set: ''
|
|
SET @@character_set_database = 'latin 2';
|
|
ERROR 42000: Unknown character set: 'latin 2'
|
|
SET @@character_set_database = true;
|
|
SELECT @@character_set_database AS res_with_true;
|
|
res_with_true
|
|
big5
|
|
SET @@character_set_database = ON;
|
|
ERROR 42000: Unknown character set: 'ON'
|
|
'#--------------------FN_DYNVARS_012_11-------------------------#'
|
|
SET @@global.character_set_database = abc;
|
|
ERROR 42000: Unknown character set: 'abc'
|
|
SET @@global.character_set_database = 1utf8;
|
|
ERROR 42000: Unknown character set: '1utf8'
|
|
SET @@global.character_set_database = 0;
|
|
ERROR 42000: Unknown character set: '0'
|
|
SET @@global.character_set_database = 1.1;
|
|
ERROR 42000: Incorrect argument type to variable 'character_set_database'
|
|
SET @@global.character_set_database = -1;
|
|
ERROR 42000: Unknown character set: '-1'
|
|
SET @@global.character_set_database = '';
|
|
ERROR 42000: Unknown character set: ''
|
|
SET @@global.character_set_database = 'utf';
|
|
ERROR 42000: Unknown character set: 'utf'
|
|
SET @@global.character_set_database = true;
|
|
SET @@global.character_set_database = ON;
|
|
ERROR 42000: Unknown character set: 'ON'
|
|
'#--------------------FN_DYNVARS_012_12-------------------------#'
|
|
SELECT @@global.character_set_database =
|
|
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
|
WHERE VARIABLE_NAME='character_set_database') AS res;
|
|
res
|
|
1
|
|
SET @@global.character_set_database = 1;
|
|
SELECT @@global.character_set_database;
|
|
@@global.character_set_database
|
|
big5
|
|
SELECT @@global.character_set_database =
|
|
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
|
|
WHERE VARIABLE_NAME='character_set_database') AS res;
|
|
res
|
|
1
|
|
'#--------------------FN_DYNVARS_012_13-------------------------#'
|
|
SELECT @@character_set_database =
|
|
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
|
|
WHERE VARIABLE_NAME='character_set_database') AS res;
|
|
res
|
|
1
|
|
SELECT @@local.character_set_database =
|
|
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
|
|
WHERE VARIABLE_NAME='character_set_database') AS res;
|
|
res
|
|
1
|
|
SELECT @@session.character_set_database =
|
|
(SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.SESSION_VARIABLES
|
|
WHERE VARIABLE_NAME='character_set_database') AS res;
|
|
res
|
|
1
|
|
SET @@global.character_set_database = @global_start_value;
|
|
SET @@session.character_set_database = @session_start_value;
|