Commit 59730d8f authored by Matthias Leich's avatar Matthias Leich

Fix for Bug#40545, Bug#40209, Bug#40618, Bug#38346

  Details:
  - Limit the queries to character sets and collations
    which are most probably available in all build types.
    But try to preserve the intention of the tests.
  - Remove the variants adjusted to some build types.

  Note:
  1. The results of the review by Bar are included.
  2. I am not able to check the correctness of this patch
     on any existing build type and any MySQL version.
     So it could happen that the new test fails somewhere.
parent def04705
DROP USER dbdict_test@localhost;
CREATE USER dbdict_test@localhost;
# Establish connection con (user=dbdict_test)
SELECT *
FROM information_schema.character_sets
WHERE character_set_name IN ('utf8','latin1','binary')
ORDER BY character_set_name;
CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
binary binary Binary pseudo charset 1
latin1 latin1_swedish_ci cp1252 West European 1
utf8 utf8_general_ci UTF-8 Unicode 3
SELECT *
FROM information_schema.collations
WHERE character_set_name IN ('utf8','latin1','binary')
AND (collation_name LIKE CONCAT(character_set_name,'_general_ci')
OR
collation_name LIKE CONCAT(character_set_name,'_bin'))
ORDER BY collation_name;
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
latin1_bin latin1 47 Yes 1
latin1_general_ci latin1 48 Yes 1
utf8_bin utf8 83 Yes 1
utf8_general_ci utf8 33 Yes Yes 1
SELECT *
FROM information_schema.collation_character_set_applicability
WHERE character_set_name IN ('utf8','latin1','binary')
AND (collation_name LIKE CONCAT(character_set_name,'_general_ci')
OR
collation_name LIKE CONCAT(character_set_name,'_bin'))
ORDER BY collation_name, character_set_name;
COLLATION_NAME CHARACTER_SET_NAME
latin1_bin latin1
latin1_general_ci latin1
utf8_bin utf8
utf8_general_ci utf8
# Switch to connection default + disconnect con
DROP USER dbdict_test@localhost;
DROP USER dbdict_test@localhost;
CREATE USER dbdict_test@localhost;
# Establish connection con (user=dbdict_test)
SELECT *
FROM information_schema.character_sets
ORDER BY character_set_name;
CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
armscii8 armscii8_general_ci ARMSCII-8 Armenian 1
ascii ascii_general_ci US ASCII 1
big5 big5_chinese_ci Big5 Traditional Chinese 2
binary binary Binary pseudo charset 1
cp1250 cp1250_general_ci Windows Central European 1
cp1251 cp1251_general_ci Windows Cyrillic 1
cp1256 cp1256_general_ci Windows Arabic 1
cp1257 cp1257_general_ci Windows Baltic 1
cp850 cp850_general_ci DOS West European 1
cp852 cp852_general_ci DOS Central European 1
cp866 cp866_general_ci DOS Russian 1
cp932 cp932_japanese_ci SJIS for Windows Japanese 2
dec8 dec8_swedish_ci DEC West European 1
eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3
euckr euckr_korean_ci EUC-KR Korean 2
gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2
gbk gbk_chinese_ci GBK Simplified Chinese 2
geostd8 geostd8_general_ci GEOSTD8 Georgian 1
greek greek_general_ci ISO 8859-7 Greek 1
hebrew hebrew_general_ci ISO 8859-8 Hebrew 1
hp8 hp8_english_ci HP West European 1
keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1
koi8r koi8r_general_ci KOI8-R Relcom Russian 1
koi8u koi8u_general_ci KOI8-U Ukrainian 1
latin1 latin1_swedish_ci cp1252 West European 1
latin2 latin2_general_ci ISO 8859-2 Central European 1
latin5 latin5_turkish_ci ISO 8859-9 Turkish 1
latin7 latin7_general_ci ISO 8859-13 Baltic 1
macce macce_general_ci Mac Central European 1
macroman macroman_general_ci Mac West European 1
sjis sjis_japanese_ci Shift-JIS Japanese 2
swe7 swe7_swedish_ci 7bit Swedish 1
tis620 tis620_thai_ci TIS620 Thai 1
ucs2 ucs2_general_ci UCS-2 Unicode 2
ujis ujis_japanese_ci EUC-JP Japanese 3
utf8 utf8_general_ci UTF-8 Unicode 3
SELECT *
FROM information_schema.collations
ORDER BY collation_name;
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
armscii8_bin armscii8 64 0
armscii8_general_ci armscii8 32 Yes 0
ascii_bin ascii 65 0
ascii_general_ci ascii 11 Yes 0
big5_bin big5 84 Yes 1
big5_chinese_ci big5 1 Yes Yes 1
binary binary 63 Yes Yes 1
cp1250_bin cp1250 66 Yes 1
cp1250_croatian_ci cp1250 44 Yes 1
cp1250_czech_cs cp1250 34 Yes 2
cp1250_general_ci cp1250 26 Yes Yes 1
cp1251_bin cp1251 50 0
cp1251_bulgarian_ci cp1251 14 0
cp1251_general_ci cp1251 51 Yes 0
cp1251_general_cs cp1251 52 0
cp1251_ukrainian_ci cp1251 23 0
cp1256_bin cp1256 67 0
cp1256_general_ci cp1256 57 Yes 0
cp1257_bin cp1257 58 0
cp1257_general_ci cp1257 59 Yes 0
cp1257_lithuanian_ci cp1257 29 0
cp850_bin cp850 80 0
cp850_general_ci cp850 4 Yes 0
cp852_bin cp852 81 0
cp852_general_ci cp852 40 Yes 0
cp866_bin cp866 68 0
cp866_general_ci cp866 36 Yes 0
cp932_bin cp932 96 Yes 1
cp932_japanese_ci cp932 95 Yes Yes 1
dec8_bin dec8 69 0
dec8_swedish_ci dec8 3 Yes 0
eucjpms_bin eucjpms 98 Yes 1
eucjpms_japanese_ci eucjpms 97 Yes Yes 1
euckr_bin euckr 85 Yes 1
euckr_korean_ci euckr 19 Yes Yes 1
gb2312_bin gb2312 86 Yes 1
gb2312_chinese_ci gb2312 24 Yes Yes 1
gbk_bin gbk 87 Yes 1
gbk_chinese_ci gbk 28 Yes Yes 1
geostd8_bin geostd8 93 0
geostd8_general_ci geostd8 92 Yes 0
greek_bin greek 70 0
greek_general_ci greek 25 Yes 0
hebrew_bin hebrew 71 0
hebrew_general_ci hebrew 16 Yes 0
hp8_bin hp8 72 0
hp8_english_ci hp8 6 Yes 0
keybcs2_bin keybcs2 73 0
keybcs2_general_ci keybcs2 37 Yes 0
koi8r_bin koi8r 74 0
koi8r_general_ci koi8r 7 Yes 0
koi8u_bin koi8u 75 0
koi8u_general_ci koi8u 22 Yes 0
latin1_bin latin1 47 Yes 1
latin1_danish_ci latin1 15 Yes 1
latin1_general_ci latin1 48 Yes 1
latin1_general_cs latin1 49 Yes 1
latin1_german1_ci latin1 5 Yes 1
latin1_german2_ci latin1 31 Yes 2
latin1_spanish_ci latin1 94 Yes 1
latin1_swedish_ci latin1 8 Yes Yes 1
latin2_bin latin2 77 Yes 1
latin2_croatian_ci latin2 27 Yes 1
latin2_czech_cs latin2 2 Yes 4
latin2_general_ci latin2 9 Yes Yes 1
latin2_hungarian_ci latin2 21 Yes 1
latin5_bin latin5 78 0
latin5_turkish_ci latin5 30 Yes 0
latin7_bin latin7 79 0
latin7_estonian_cs latin7 20 0
latin7_general_ci latin7 41 Yes 0
latin7_general_cs latin7 42 0
macce_bin macce 43 0
macce_general_ci macce 38 Yes 0
macroman_bin macroman 53 0
macroman_general_ci macroman 39 Yes 0
sjis_bin sjis 88 Yes 1
sjis_japanese_ci sjis 13 Yes Yes 1
swe7_bin swe7 82 0
swe7_swedish_ci swe7 10 Yes 0
tis620_bin tis620 89 Yes 1
tis620_thai_ci tis620 18 Yes Yes 4
ucs2_bin ucs2 90 Yes 1
ucs2_czech_ci ucs2 138 Yes 8
ucs2_danish_ci ucs2 139 Yes 8
ucs2_esperanto_ci ucs2 145 Yes 8
ucs2_estonian_ci ucs2 134 Yes 8
ucs2_general_ci ucs2 35 Yes Yes 1
ucs2_hungarian_ci ucs2 146 Yes 8
ucs2_icelandic_ci ucs2 129 Yes 8
ucs2_latvian_ci ucs2 130 Yes 8
ucs2_lithuanian_ci ucs2 140 Yes 8
ucs2_persian_ci ucs2 144 Yes 8
ucs2_polish_ci ucs2 133 Yes 8
ucs2_romanian_ci ucs2 131 Yes 8
ucs2_roman_ci ucs2 143 Yes 8
ucs2_slovak_ci ucs2 141 Yes 8
ucs2_slovenian_ci ucs2 132 Yes 8
ucs2_spanish2_ci ucs2 142 Yes 8
ucs2_spanish_ci ucs2 135 Yes 8
ucs2_swedish_ci ucs2 136 Yes 8
ucs2_turkish_ci ucs2 137 Yes 8
ucs2_unicode_ci ucs2 128 Yes 8
ujis_bin ujis 91 Yes 1
ujis_japanese_ci ujis 12 Yes Yes 1
utf8_bin utf8 83 Yes 1
utf8_czech_ci utf8 202 Yes 8
utf8_danish_ci utf8 203 Yes 8
utf8_esperanto_ci utf8 209 Yes 8
utf8_estonian_ci utf8 198 Yes 8
utf8_general_ci utf8 33 Yes Yes 1
utf8_hungarian_ci utf8 210 Yes 8
utf8_icelandic_ci utf8 193 Yes 8
utf8_latvian_ci utf8 194 Yes 8
utf8_lithuanian_ci utf8 204 Yes 8
utf8_persian_ci utf8 208 Yes 8
utf8_polish_ci utf8 197 Yes 8
utf8_romanian_ci utf8 195 Yes 8
utf8_roman_ci utf8 207 Yes 8
utf8_slovak_ci utf8 205 Yes 8
utf8_slovenian_ci utf8 196 Yes 8
utf8_spanish2_ci utf8 206 Yes 8
utf8_spanish_ci utf8 199 Yes 8
utf8_swedish_ci utf8 200 Yes 8
utf8_turkish_ci utf8 201 Yes 8
utf8_unicode_ci utf8 192 Yes 8
SELECT *
FROM information_schema.collation_character_set_applicability
ORDER BY collation_name, character_set_name;
COLLATION_NAME CHARACTER_SET_NAME
armscii8_bin armscii8
armscii8_general_ci armscii8
ascii_bin ascii
ascii_general_ci ascii
big5_bin big5
big5_chinese_ci big5
binary binary
cp1250_bin cp1250
cp1250_croatian_ci cp1250
cp1250_czech_cs cp1250
cp1250_general_ci cp1250
cp1251_bin cp1251
cp1251_bulgarian_ci cp1251
cp1251_general_ci cp1251
cp1251_general_cs cp1251
cp1251_ukrainian_ci cp1251
cp1256_bin cp1256
cp1256_general_ci cp1256
cp1257_bin cp1257
cp1257_general_ci cp1257
cp1257_lithuanian_ci cp1257
cp850_bin cp850
cp850_general_ci cp850
cp852_bin cp852
cp852_general_ci cp852
cp866_bin cp866
cp866_general_ci cp866
cp932_bin cp932
cp932_japanese_ci cp932
dec8_bin dec8
dec8_swedish_ci dec8
eucjpms_bin eucjpms
eucjpms_japanese_ci eucjpms
euckr_bin euckr
euckr_korean_ci euckr
gb2312_bin gb2312
gb2312_chinese_ci gb2312
gbk_bin gbk
gbk_chinese_ci gbk
geostd8_bin geostd8
geostd8_general_ci geostd8
greek_bin greek
greek_general_ci greek
hebrew_bin hebrew
hebrew_general_ci hebrew
hp8_bin hp8
hp8_english_ci hp8
keybcs2_bin keybcs2
keybcs2_general_ci keybcs2
koi8r_bin koi8r
koi8r_general_ci koi8r
koi8u_bin koi8u
koi8u_general_ci koi8u
latin1_bin latin1
latin1_danish_ci latin1
latin1_general_ci latin1
latin1_general_cs latin1
latin1_german1_ci latin1
latin1_german2_ci latin1
latin1_spanish_ci latin1
latin1_swedish_ci latin1
latin2_bin latin2
latin2_croatian_ci latin2
latin2_czech_cs latin2
latin2_general_ci latin2
latin2_hungarian_ci latin2
latin5_bin latin5
latin5_turkish_ci latin5
latin7_bin latin7
latin7_estonian_cs latin7
latin7_general_ci latin7
latin7_general_cs latin7
macce_bin macce
macce_general_ci macce
macroman_bin macroman
macroman_general_ci macroman
sjis_bin sjis
sjis_japanese_ci sjis
swe7_bin swe7
swe7_swedish_ci swe7
tis620_bin tis620
tis620_thai_ci tis620
ucs2_bin ucs2
ucs2_czech_ci ucs2
ucs2_danish_ci ucs2
ucs2_esperanto_ci ucs2
ucs2_estonian_ci ucs2
ucs2_general_ci ucs2
ucs2_hungarian_ci ucs2
ucs2_icelandic_ci ucs2
ucs2_latvian_ci ucs2
ucs2_lithuanian_ci ucs2
ucs2_persian_ci ucs2
ucs2_polish_ci ucs2
ucs2_romanian_ci ucs2
ucs2_roman_ci ucs2
ucs2_slovak_ci ucs2
ucs2_slovenian_ci ucs2
ucs2_spanish2_ci ucs2
ucs2_spanish_ci ucs2
ucs2_swedish_ci ucs2
ucs2_turkish_ci ucs2
ucs2_unicode_ci ucs2
ujis_bin ujis
ujis_japanese_ci ujis
utf8_bin utf8
utf8_czech_ci utf8
utf8_danish_ci utf8
utf8_esperanto_ci utf8
utf8_estonian_ci utf8
utf8_general_ci utf8
utf8_hungarian_ci utf8
utf8_icelandic_ci utf8
utf8_latvian_ci utf8
utf8_lithuanian_ci utf8
utf8_persian_ci utf8
utf8_polish_ci utf8
utf8_romanian_ci utf8
utf8_roman_ci utf8
utf8_slovak_ci utf8
utf8_slovenian_ci utf8
utf8_spanish2_ci utf8
utf8_spanish_ci utf8
utf8_swedish_ci utf8
utf8_turkish_ci utf8
utf8_unicode_ci utf8
# Switch to connection default + disconnect con
DROP USER dbdict_test@localhost;
DROP USER dbdict_test@localhost;
CREATE USER dbdict_test@localhost;
# Establish connection con (user=dbdict_test)
SELECT *
FROM information_schema.character_sets
ORDER BY character_set_name;
CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
armscii8 armscii8_general_ci ARMSCII-8 Armenian 1
ascii ascii_general_ci US ASCII 1
big5 big5_chinese_ci Big5 Traditional Chinese 2
binary binary Binary pseudo charset 1
cp1250 cp1250_general_ci Windows Central European 1
cp1251 cp1251_general_ci Windows Cyrillic 1
cp1256 cp1256_general_ci Windows Arabic 1
cp1257 cp1257_general_ci Windows Baltic 1
cp850 cp850_general_ci DOS West European 1
cp852 cp852_general_ci DOS Central European 1
cp866 cp866_general_ci DOS Russian 1
cp932 cp932_japanese_ci SJIS for Windows Japanese 2
dec8 dec8_swedish_ci DEC West European 1
eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3
euckr euckr_korean_ci EUC-KR Korean 2
gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2
gbk gbk_chinese_ci GBK Simplified Chinese 2
geostd8 geostd8_general_ci GEOSTD8 Georgian 1
greek greek_general_ci ISO 8859-7 Greek 1
hebrew hebrew_general_ci ISO 8859-8 Hebrew 1
hp8 hp8_english_ci HP West European 1
keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1
koi8r koi8r_general_ci KOI8-R Relcom Russian 1
koi8u koi8u_general_ci KOI8-U Ukrainian 1
latin1 latin1_swedish_ci cp1252 West European 1
latin2 latin2_general_ci ISO 8859-2 Central European 1
latin5 latin5_turkish_ci ISO 8859-9 Turkish 1
latin7 latin7_general_ci ISO 8859-13 Baltic 1
macce macce_general_ci Mac Central European 1
macroman macroman_general_ci Mac West European 1
sjis sjis_japanese_ci Shift-JIS Japanese 2
swe7 swe7_swedish_ci 7bit Swedish 1
tis620 tis620_thai_ci TIS620 Thai 1
ucs2 ucs2_general_ci UCS-2 Unicode 2
ujis ujis_japanese_ci EUC-JP Japanese 3
utf8 utf8_general_ci UTF-8 Unicode 3
SELECT *
FROM information_schema.collations
ORDER BY collation_name;
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
armscii8_bin armscii8 64 0
armscii8_general_ci armscii8 32 Yes 0
ascii_bin ascii 65 0
ascii_general_ci ascii 11 Yes 0
big5_bin big5 84 Yes 1
big5_chinese_ci big5 1 Yes Yes 1
binary binary 63 Yes Yes 1
cp1250_bin cp1250 66 Yes 1
cp1250_croatian_ci cp1250 44 Yes 1
cp1250_czech_cs cp1250 34 Yes 2
cp1250_general_ci cp1250 26 Yes Yes 1
cp1251_bin cp1251 50 0
cp1251_bulgarian_ci cp1251 14 0
cp1251_general_ci cp1251 51 Yes 0
cp1251_general_cs cp1251 52 0
cp1251_ukrainian_ci cp1251 23 0
cp1256_bin cp1256 67 0
cp1256_general_ci cp1256 57 Yes 0
cp1257_bin cp1257 58 0
cp1257_general_ci cp1257 59 Yes 0
cp1257_lithuanian_ci cp1257 29 0
cp850_bin cp850 80 0
cp850_general_ci cp850 4 Yes 0
cp852_bin cp852 81 0
cp852_general_ci cp852 40 Yes 0
cp866_bin cp866 68 0
cp866_general_ci cp866 36 Yes 0
cp932_bin cp932 96 Yes 1
cp932_japanese_ci cp932 95 Yes Yes 1
dec8_bin dec8 69 0
dec8_swedish_ci dec8 3 Yes 0
eucjpms_bin eucjpms 98 Yes 1
eucjpms_japanese_ci eucjpms 97 Yes Yes 1
euckr_bin euckr 85 Yes 1
euckr_korean_ci euckr 19 Yes Yes 1
gb2312_bin gb2312 86 Yes 1
gb2312_chinese_ci gb2312 24 Yes Yes 1
gbk_bin gbk 87 Yes 1
gbk_chinese_ci gbk 28 Yes Yes 1
geostd8_bin geostd8 93 0
geostd8_general_ci geostd8 92 Yes 0
greek_bin greek 70 0
greek_general_ci greek 25 Yes 0
hebrew_bin hebrew 71 0
hebrew_general_ci hebrew 16 Yes 0
hp8_bin hp8 72 0
hp8_english_ci hp8 6 Yes 0
keybcs2_bin keybcs2 73 0
keybcs2_general_ci keybcs2 37 Yes 0
koi8r_bin koi8r 74 0
koi8r_general_ci koi8r 7 Yes 0
koi8u_bin koi8u 75 0
koi8u_general_ci koi8u 22 Yes 0
latin1_bin latin1 47 Yes 1
latin1_danish_ci latin1 15 Yes 1
latin1_general_ci latin1 48 Yes 1
latin1_general_cs latin1 49 Yes 1
latin1_german1_ci latin1 5 Yes 1
latin1_german2_ci latin1 31 Yes 2
latin1_spanish_ci latin1 94 Yes 1
latin1_swedish_ci latin1 8 Yes Yes 1
latin2_bin latin2 77 Yes 1
latin2_croatian_ci latin2 27 Yes 1
latin2_czech_cs latin2 2 Yes 4
latin2_general_ci latin2 9 Yes Yes 1
latin2_hungarian_ci latin2 21 Yes 1
latin5_bin latin5 78 0
latin5_turkish_ci latin5 30 Yes 0
latin7_bin latin7 79 0
latin7_estonian_cs latin7 20 0
latin7_general_ci latin7 41 Yes 0
latin7_general_cs latin7 42 0
macce_bin macce 43 0
macce_general_ci macce 38 Yes 0
macroman_bin macroman 53 0
macroman_general_ci macroman 39 Yes 0
sjis_bin sjis 88 Yes 1
sjis_japanese_ci sjis 13 Yes Yes 1
swe7_bin swe7 82 0
swe7_swedish_ci swe7 10 Yes 0
tis620_bin tis620 89 Yes 1
tis620_thai_ci tis620 18 Yes Yes 4
ucs2_bin ucs2 90 Yes 1
ucs2_czech_ci ucs2 138 Yes 8
ucs2_danish_ci ucs2 139 Yes 8
ucs2_esperanto_ci ucs2 145 Yes 8
ucs2_estonian_ci ucs2 134 Yes 8
ucs2_general_ci ucs2 35 Yes Yes 1
ucs2_hungarian_ci ucs2 146 Yes 8
ucs2_icelandic_ci ucs2 129 Yes 8
ucs2_latvian_ci ucs2 130 Yes 8
ucs2_lithuanian_ci ucs2 140 Yes 8
ucs2_persian_ci ucs2 144 Yes 8
ucs2_polish_ci ucs2 133 Yes 8
ucs2_romanian_ci ucs2 131 Yes 8
ucs2_roman_ci ucs2 143 Yes 8
ucs2_slovak_ci ucs2 141 Yes 8
ucs2_slovenian_ci ucs2 132 Yes 8
ucs2_spanish2_ci ucs2 142 Yes 8
ucs2_spanish_ci ucs2 135 Yes 8
ucs2_swedish_ci ucs2 136 Yes 8
ucs2_turkish_ci ucs2 137 Yes 8
ucs2_unicode_ci ucs2 128 Yes 8
ujis_bin ujis 91 Yes 1
ujis_japanese_ci ujis 12 Yes Yes 1
utf8_bin utf8 83 Yes 1
utf8_czech_ci utf8 202 Yes 8
utf8_danish_ci utf8 203 Yes 8
utf8_esperanto_ci utf8 209 Yes 8
utf8_estonian_ci utf8 198 Yes 8
utf8_general_ci utf8 33 Yes Yes 1
utf8_general_cs utf8 254 Yes 1
utf8_hungarian_ci utf8 210 Yes 8
utf8_icelandic_ci utf8 193 Yes 8
utf8_latvian_ci utf8 194 Yes 8
utf8_lithuanian_ci utf8 204 Yes 8
utf8_persian_ci utf8 208 Yes 8
utf8_polish_ci utf8 197 Yes 8
utf8_romanian_ci utf8 195 Yes 8
utf8_roman_ci utf8 207 Yes 8
utf8_slovak_ci utf8 205 Yes 8
utf8_slovenian_ci utf8 196 Yes 8
utf8_spanish2_ci utf8 206 Yes 8
utf8_spanish_ci utf8 199 Yes 8
utf8_swedish_ci utf8 200 Yes 8
utf8_turkish_ci utf8 201 Yes 8
utf8_unicode_ci utf8 192 Yes 8
SELECT *
FROM information_schema.collation_character_set_applicability
ORDER BY collation_name, character_set_name;
COLLATION_NAME CHARACTER_SET_NAME
armscii8_bin armscii8
armscii8_general_ci armscii8
ascii_bin ascii
ascii_general_ci ascii
big5_bin big5
big5_chinese_ci big5
binary binary
cp1250_bin cp1250
cp1250_croatian_ci cp1250
cp1250_czech_cs cp1250
cp1250_general_ci cp1250
cp1251_bin cp1251
cp1251_bulgarian_ci cp1251
cp1251_general_ci cp1251
cp1251_general_cs cp1251
cp1251_ukrainian_ci cp1251
cp1256_bin cp1256
cp1256_general_ci cp1256
cp1257_bin cp1257
cp1257_general_ci cp1257
cp1257_lithuanian_ci cp1257
cp850_bin cp850
cp850_general_ci cp850
cp852_bin cp852
cp852_general_ci cp852
cp866_bin cp866
cp866_general_ci cp866
cp932_bin cp932
cp932_japanese_ci cp932
dec8_bin dec8
dec8_swedish_ci dec8
eucjpms_bin eucjpms
eucjpms_japanese_ci eucjpms
euckr_bin euckr
euckr_korean_ci euckr
gb2312_bin gb2312
gb2312_chinese_ci gb2312
gbk_bin gbk
gbk_chinese_ci gbk
geostd8_bin geostd8
geostd8_general_ci geostd8
greek_bin greek
greek_general_ci greek
hebrew_bin hebrew
hebrew_general_ci hebrew
hp8_bin hp8
hp8_english_ci hp8
keybcs2_bin keybcs2
keybcs2_general_ci keybcs2
koi8r_bin koi8r
koi8r_general_ci koi8r
koi8u_bin koi8u
koi8u_general_ci koi8u
latin1_bin latin1
latin1_danish_ci latin1
latin1_general_ci latin1
latin1_general_cs latin1
latin1_german1_ci latin1
latin1_german2_ci latin1
latin1_spanish_ci latin1
latin1_swedish_ci latin1
latin2_bin latin2
latin2_croatian_ci latin2
latin2_czech_cs latin2
latin2_general_ci latin2
latin2_hungarian_ci latin2
latin5_bin latin5
latin5_turkish_ci latin5
latin7_bin latin7
latin7_estonian_cs latin7
latin7_general_ci latin7
latin7_general_cs latin7
macce_bin macce
macce_general_ci macce
macroman_bin macroman
macroman_general_ci macroman
sjis_bin sjis
sjis_japanese_ci sjis
swe7_bin swe7
swe7_swedish_ci swe7
tis620_bin tis620
tis620_thai_ci tis620
ucs2_bin ucs2
ucs2_czech_ci ucs2
ucs2_danish_ci ucs2
ucs2_esperanto_ci ucs2
ucs2_estonian_ci ucs2
ucs2_general_ci ucs2
ucs2_hungarian_ci ucs2
ucs2_icelandic_ci ucs2
ucs2_latvian_ci ucs2
ucs2_lithuanian_ci ucs2
ucs2_persian_ci ucs2
ucs2_polish_ci ucs2
ucs2_romanian_ci ucs2
ucs2_roman_ci ucs2
ucs2_slovak_ci ucs2
ucs2_slovenian_ci ucs2
ucs2_spanish2_ci ucs2
ucs2_spanish_ci ucs2
ucs2_swedish_ci ucs2
ucs2_turkish_ci ucs2
ucs2_unicode_ci ucs2
ujis_bin ujis
ujis_japanese_ci ujis
utf8_bin utf8
utf8_czech_ci utf8
utf8_danish_ci utf8
utf8_esperanto_ci utf8
utf8_estonian_ci utf8
utf8_general_ci utf8
utf8_general_cs utf8
utf8_hungarian_ci utf8
utf8_icelandic_ci utf8
utf8_latvian_ci utf8
utf8_lithuanian_ci utf8
utf8_persian_ci utf8
utf8_polish_ci utf8
utf8_romanian_ci utf8
utf8_roman_ci utf8
utf8_slovak_ci utf8
utf8_slovenian_ci utf8
utf8_spanish2_ci utf8
utf8_spanish_ci utf8
utf8_swedish_ci utf8
utf8_turkish_ci utf8
utf8_unicode_ci utf8
# Switch to connection default + disconnect con
DROP USER dbdict_test@localhost;
DROP USER dbdict_test@localhost;
CREATE USER dbdict_test@localhost;
# Establish connection con (user=dbdict_test)
SELECT *
FROM information_schema.character_sets
ORDER BY character_set_name;
CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
armscii8 armscii8_general_ci ARMSCII-8 Armenian 1
ascii ascii_general_ci US ASCII 1
big5 big5_chinese_ci Big5 Traditional Chinese 2
binary binary Binary pseudo charset 1
cp1250 cp1250_general_ci Windows Central European 1
cp1251 cp1251_general_ci Windows Cyrillic 1
cp1256 cp1256_general_ci Windows Arabic 1
cp1257 cp1257_general_ci Windows Baltic 1
cp850 cp850_general_ci DOS West European 1
cp852 cp852_general_ci DOS Central European 1
cp866 cp866_general_ci DOS Russian 1
cp932 cp932_japanese_ci SJIS for Windows Japanese 2
dec8 dec8_swedish_ci DEC West European 1
eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3
euckr euckr_korean_ci EUC-KR Korean 2
gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2
gbk gbk_chinese_ci GBK Simplified Chinese 2
geostd8 geostd8_general_ci GEOSTD8 Georgian 1
greek greek_general_ci ISO 8859-7 Greek 1
hebrew hebrew_general_ci ISO 8859-8 Hebrew 1
hp8 hp8_english_ci HP West European 1
keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1
koi8r koi8r_general_ci KOI8-R Relcom Russian 1
koi8u koi8u_general_ci KOI8-U Ukrainian 1
latin1 latin1_swedish_ci cp1252 West European 1
latin2 latin2_general_ci ISO 8859-2 Central European 1
latin5 latin5_turkish_ci ISO 8859-9 Turkish 1
latin7 latin7_general_ci ISO 8859-13 Baltic 1
macce macce_general_ci Mac Central European 1
macroman macroman_general_ci Mac West European 1
sjis sjis_japanese_ci Shift-JIS Japanese 2
swe7 swe7_swedish_ci 7bit Swedish 1
tis620 tis620_thai_ci TIS620 Thai 1
ucs2 ucs2_general_ci UCS-2 Unicode 2
ujis ujis_japanese_ci EUC-JP Japanese 3
utf8 utf8_general_ci UTF-8 Unicode 3
SELECT *
FROM information_schema.collations
ORDER BY collation_name;
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
armscii8_bin armscii8 64 Yes 1
armscii8_general_ci armscii8 32 Yes Yes 1
ascii_bin ascii 65 Yes 1
ascii_general_ci ascii 11 Yes Yes 1
big5_bin big5 84 Yes 1
big5_chinese_ci big5 1 Yes Yes 1
binary binary 63 Yes Yes 1
cp1250_bin cp1250 66 Yes 1
cp1250_croatian_ci cp1250 44 Yes 1
cp1250_czech_cs cp1250 34 Yes 2
cp1250_general_ci cp1250 26 Yes Yes 1
cp1251_bin cp1251 50 Yes 1
cp1251_bulgarian_ci cp1251 14 Yes 1
cp1251_general_ci cp1251 51 Yes Yes 1
cp1251_general_cs cp1251 52 Yes 1
cp1251_ukrainian_ci cp1251 23 Yes 1
cp1256_bin cp1256 67 Yes 1
cp1256_general_ci cp1256 57 Yes Yes 1
cp1257_bin cp1257 58 Yes 1
cp1257_general_ci cp1257 59 Yes Yes 1
cp1257_lithuanian_ci cp1257 29 Yes 1
cp850_bin cp850 80 Yes 1
cp850_general_ci cp850 4 Yes Yes 1
cp852_bin cp852 81 Yes 1
cp852_general_ci cp852 40 Yes Yes 1
cp866_bin cp866 68 Yes 1
cp866_general_ci cp866 36 Yes Yes 1
cp932_bin cp932 96 Yes 1
cp932_japanese_ci cp932 95 Yes Yes 1
dec8_bin dec8 69 Yes 1
dec8_swedish_ci dec8 3 Yes Yes 1
eucjpms_bin eucjpms 98 Yes 1
eucjpms_japanese_ci eucjpms 97 Yes Yes 1
euckr_bin euckr 85 Yes 1
euckr_korean_ci euckr 19 Yes Yes 1
gb2312_bin gb2312 86 Yes 1
gb2312_chinese_ci gb2312 24 Yes Yes 1
gbk_bin gbk 87 Yes 1
gbk_chinese_ci gbk 28 Yes Yes 1
geostd8_bin geostd8 93 Yes 1
geostd8_general_ci geostd8 92 Yes Yes 1
greek_bin greek 70 Yes 1
greek_general_ci greek 25 Yes Yes 1
hebrew_bin hebrew 71 Yes 1
hebrew_general_ci hebrew 16 Yes Yes 1
hp8_bin hp8 72 Yes 1
hp8_english_ci hp8 6 Yes Yes 1
keybcs2_bin keybcs2 73 Yes 1
keybcs2_general_ci keybcs2 37 Yes Yes 1
koi8r_bin koi8r 74 Yes 1
koi8r_general_ci koi8r 7 Yes Yes 1
koi8u_bin koi8u 75 Yes 1
koi8u_general_ci koi8u 22 Yes Yes 1
latin1_bin latin1 47 Yes 1
latin1_danish_ci latin1 15 Yes 1
latin1_general_ci latin1 48 Yes 1
latin1_general_cs latin1 49 Yes 1
latin1_german1_ci latin1 5 Yes 1
latin1_german2_ci latin1 31 Yes 2
latin1_spanish_ci latin1 94 Yes 1
latin1_swedish_ci latin1 8 Yes Yes 1
latin2_bin latin2 77 Yes 1
latin2_croatian_ci latin2 27 Yes 1
latin2_czech_cs latin2 2 Yes 4
latin2_general_ci latin2 9 Yes Yes 1
latin2_hungarian_ci latin2 21 Yes 1
latin5_bin latin5 78 Yes 1
latin5_turkish_ci latin5 30 Yes Yes 1
latin7_bin latin7 79 Yes 1
latin7_estonian_cs latin7 20 Yes 1
latin7_general_ci latin7 41 Yes Yes 1
latin7_general_cs latin7 42 Yes 1
macce_bin macce 43 Yes 1
macce_general_ci macce 38 Yes Yes 1
macroman_bin macroman 53 Yes 1
macroman_general_ci macroman 39 Yes Yes 1
sjis_bin sjis 88 Yes 1
sjis_japanese_ci sjis 13 Yes Yes 1
swe7_bin swe7 82 Yes 1
swe7_swedish_ci swe7 10 Yes Yes 1
tis620_bin tis620 89 Yes 1
tis620_thai_ci tis620 18 Yes Yes 4
ucs2_bin ucs2 90 Yes 1
ucs2_czech_ci ucs2 138 Yes 8
ucs2_danish_ci ucs2 139 Yes 8
ucs2_esperanto_ci ucs2 145 Yes 8
ucs2_estonian_ci ucs2 134 Yes 8
ucs2_general_ci ucs2 35 Yes Yes 1
ucs2_hungarian_ci ucs2 146 Yes 8
ucs2_icelandic_ci ucs2 129 Yes 8
ucs2_latvian_ci ucs2 130 Yes 8
ucs2_lithuanian_ci ucs2 140 Yes 8
ucs2_persian_ci ucs2 144 Yes 8
ucs2_polish_ci ucs2 133 Yes 8
ucs2_romanian_ci ucs2 131 Yes 8
ucs2_roman_ci ucs2 143 Yes 8
ucs2_slovak_ci ucs2 141 Yes 8
ucs2_slovenian_ci ucs2 132 Yes 8
ucs2_spanish2_ci ucs2 142 Yes 8
ucs2_spanish_ci ucs2 135 Yes 8
ucs2_swedish_ci ucs2 136 Yes 8
ucs2_turkish_ci ucs2 137 Yes 8
ucs2_unicode_ci ucs2 128 Yes 8
ujis_bin ujis 91 Yes 1
ujis_japanese_ci ujis 12 Yes Yes 1
utf8_bin utf8 83 Yes 1
utf8_czech_ci utf8 202 Yes 8
utf8_danish_ci utf8 203 Yes 8
utf8_esperanto_ci utf8 209 Yes 8
utf8_estonian_ci utf8 198 Yes 8
utf8_general_ci utf8 33 Yes Yes 1
utf8_hungarian_ci utf8 210 Yes 8
utf8_icelandic_ci utf8 193 Yes 8
utf8_latvian_ci utf8 194 Yes 8
utf8_lithuanian_ci utf8 204 Yes 8
utf8_persian_ci utf8 208 Yes 8
utf8_polish_ci utf8 197 Yes 8
utf8_romanian_ci utf8 195 Yes 8
utf8_roman_ci utf8 207 Yes 8
utf8_slovak_ci utf8 205 Yes 8
utf8_slovenian_ci utf8 196 Yes 8
utf8_spanish2_ci utf8 206 Yes 8
utf8_spanish_ci utf8 199 Yes 8
utf8_swedish_ci utf8 200 Yes 8
utf8_turkish_ci utf8 201 Yes 8
utf8_unicode_ci utf8 192 Yes 8
SELECT *
FROM information_schema.collation_character_set_applicability
ORDER BY collation_name, character_set_name;
COLLATION_NAME CHARACTER_SET_NAME
armscii8_bin armscii8
armscii8_general_ci armscii8
ascii_bin ascii
ascii_general_ci ascii
big5_bin big5
big5_chinese_ci big5
binary binary
cp1250_bin cp1250
cp1250_croatian_ci cp1250
cp1250_czech_cs cp1250
cp1250_general_ci cp1250
cp1251_bin cp1251
cp1251_bulgarian_ci cp1251
cp1251_general_ci cp1251
cp1251_general_cs cp1251
cp1251_ukrainian_ci cp1251
cp1256_bin cp1256
cp1256_general_ci cp1256
cp1257_bin cp1257
cp1257_general_ci cp1257
cp1257_lithuanian_ci cp1257
cp850_bin cp850
cp850_general_ci cp850
cp852_bin cp852
cp852_general_ci cp852
cp866_bin cp866
cp866_general_ci cp866
cp932_bin cp932
cp932_japanese_ci cp932
dec8_bin dec8
dec8_swedish_ci dec8
eucjpms_bin eucjpms
eucjpms_japanese_ci eucjpms
euckr_bin euckr
euckr_korean_ci euckr
gb2312_bin gb2312
gb2312_chinese_ci gb2312
gbk_bin gbk
gbk_chinese_ci gbk
geostd8_bin geostd8
geostd8_general_ci geostd8
greek_bin greek
greek_general_ci greek
hebrew_bin hebrew
hebrew_general_ci hebrew
hp8_bin hp8
hp8_english_ci hp8
keybcs2_bin keybcs2
keybcs2_general_ci keybcs2
koi8r_bin koi8r
koi8r_general_ci koi8r
koi8u_bin koi8u
koi8u_general_ci koi8u
latin1_bin latin1
latin1_danish_ci latin1
latin1_general_ci latin1
latin1_general_cs latin1
latin1_german1_ci latin1
latin1_german2_ci latin1
latin1_spanish_ci latin1
latin1_swedish_ci latin1
latin2_bin latin2
latin2_croatian_ci latin2
latin2_czech_cs latin2
latin2_general_ci latin2
latin2_hungarian_ci latin2
latin5_bin latin5
latin5_turkish_ci latin5
latin7_bin latin7
latin7_estonian_cs latin7
latin7_general_ci latin7
latin7_general_cs latin7
macce_bin macce
macce_general_ci macce
macroman_bin macroman
macroman_general_ci macroman
sjis_bin sjis
sjis_japanese_ci sjis
swe7_bin swe7
swe7_swedish_ci swe7
tis620_bin tis620
tis620_thai_ci tis620
ucs2_bin ucs2
ucs2_czech_ci ucs2
ucs2_danish_ci ucs2
ucs2_esperanto_ci ucs2
ucs2_estonian_ci ucs2
ucs2_general_ci ucs2
ucs2_hungarian_ci ucs2
ucs2_icelandic_ci ucs2
ucs2_latvian_ci ucs2
ucs2_lithuanian_ci ucs2
ucs2_persian_ci ucs2
ucs2_polish_ci ucs2
ucs2_romanian_ci ucs2
ucs2_roman_ci ucs2
ucs2_slovak_ci ucs2
ucs2_slovenian_ci ucs2
ucs2_spanish2_ci ucs2
ucs2_spanish_ci ucs2
ucs2_swedish_ci ucs2
ucs2_turkish_ci ucs2
ucs2_unicode_ci ucs2
ujis_bin ujis
ujis_japanese_ci ujis
utf8_bin utf8
utf8_czech_ci utf8
utf8_danish_ci utf8
utf8_esperanto_ci utf8
utf8_estonian_ci utf8
utf8_general_ci utf8
utf8_hungarian_ci utf8
utf8_icelandic_ci utf8
utf8_latvian_ci utf8
utf8_lithuanian_ci utf8
utf8_persian_ci utf8
utf8_polish_ci utf8
utf8_romanian_ci utf8
utf8_roman_ci utf8
utf8_slovak_ci utf8
utf8_slovenian_ci utf8
utf8_spanish2_ci utf8
utf8_spanish_ci utf8
utf8_swedish_ci utf8
utf8_turkish_ci utf8
utf8_unicode_ci utf8
# Switch to connection default + disconnect con
DROP USER dbdict_test@localhost;
# suite/funcs_1/datadict/charset_collation.inc
# suite/funcs_1/t/charset_collation.test
#
# Tests checking the content of the information_schema tables
# character_sets
# collations
# collation_character_set_applicability
#
#
# The amount and properties of character_sets/collations depend on the
# build type
# 2007-12 MySQL 5.0, 2008-06 MySQL 5.1
# ---------------------------------------------------------------------
#
# Variant 1 fits to
# version_comment MySQL Enterprise Server (Commercial)
# version_comment MySQL Enterprise Server (GPL)
# version_comment MySQL Classic Server (Commercial)
# version_comment MySQL Pushbuild Edition, build <number>
# (version_comment Source distribution
# and
# compile was without "max" - > no collation 'utf8_general_ci')
#
# Variant 2 fits to
# version_comment MySQL Enterprise Server (GPL)
# version_comment MySQL Classic Server (Commercial)
# version_comment MySQL Pushbuild Edition, build <number>
# (version_comment Source distribution
# and
# compile was without "max" - > collation 'utf8_general_ci' exists)
#
# Difference between variant 1 and 2 is the collation 'utf8_general_ci'.
#
# Variant 3 fits to
# version_comment MySQL Community Server (GPL)
# version_comment MySQL Cluster Server (Commercial)
# version_comment MySQL Advanced Server (GPL) 5.1
# version_comment MySQL Advanced Server (Commercial) 5.1
#
# Difference between variant 3 and 2 is within the collation properties
# IS_COMPILED and SORTLEN.
#
# 2008-06 All time excluded variant is "vanilla".
# How to build "vanilla":
# ./BUILD/autorun.sh
# ./configure
# ./make
# Some properties of "vanilla"
# version_comment Source distribution
# Compared to the variants 1 to 3 a lot of character sets are missing.
# Example: "ucs2_bin" is in variant 1 to 3 but not in "vanilla".
#
# Created:
# 2007-12-18 mleich - remove the unstable character_set/collation subtests
# from include/datadict-master.inc
# - create this new test
# 2009-04-28 mleich Replace the charset_collation_* test which failed too often
# because of changes
# - in general available character sets and collations
# - in build types
# (Bug#40545, Bug#40209, Bug#40618, Bug#38346)
#
# Create a low privileged user.
......@@ -61,7 +19,6 @@ DROP USER dbdict_test@localhost;
CREATE USER dbdict_test@localhost;
--echo # Establish connection con (user=dbdict_test)
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
connect (con,localhost,dbdict_test,,);
################################################################################
#
......@@ -97,32 +54,48 @@ connect (con,localhost,dbdict_test,,);
# combinations for which the current user and PUBLIC have no
# USAGE privilege.
#
# Notes (2007-12-19 mleich):
# Notes (2009-04-28 mleich):
# - The requirements are outdated because grant/revoke privilege for using a
# characterset/collation were never implemented.
# Therefore the tests should simply check the content of these tables.
#
# Therefore the tests focus on the completeness and correctness of the
# content (rows and columns) of these tables.
# - The amount of collations/character sets grows with new MySQL releases.
#
# - Even within the same release the amount of records within these tables
# Even within the same release the amount of records within these tables
# can differ between different build types (community, enterprise, source,...)
#
# Therefore we limit the queries to character sets and collations which
# - exist in all build types
# - have in all build types the same "state".
# The character set
# - utf8 is used for Metadata
# - ascii is a quite usual
# The collations <character set>_general_ci and <character set>_bin seem
# to be available all time.
#
################################################################################
let $char_set_condition= character_set_name IN ('utf8','latin1','binary');
let $collation_condition=
(collation_name LIKE CONCAT(character_set_name,'_general_ci')
OR
collation_name LIKE CONCAT(character_set_name,'_bin'));
--echo
SELECT *
eval SELECT *
FROM information_schema.character_sets
WHERE $char_set_condition
ORDER BY character_set_name;
--echo
SELECT *
eval SELECT *
FROM information_schema.collations
WHERE $char_set_condition
AND $collation_condition
ORDER BY collation_name;
echo;
--echo
SELECT *
eval SELECT *
FROM information_schema.collation_character_set_applicability
WHERE $char_set_condition
AND $collation_condition
ORDER BY collation_name, character_set_name;
......
# Tests checking the content of the information_schema tables
# character_sets
# collations
# collation_character_set_applicability
#
# Content variant 1 which should fit to
# Enterprise or Classic builds (binaries provided by MySQL)
# Pushbuilds
# Source builds without "max"
#
# Please read suite/funcs_1/datadict/charset_collation.inc for
# additional information.
#
# Created:
# 2007-12-18 mleich - remove the unstable character_set/collation subtests
# from include/datadict-master.inc
# - create this new test
#
if (`SELECT EXISTS (SELECT 1 FROM information_schema.collations
WHERE collation_name = 'utf8_general_cs')
OR ( @@version_comment NOT LIKE '%Source%'
AND @@version_comment NOT LIKE '%Enterprise%'
AND @@version_comment NOT LIKE '%Classic%'
AND @@version_comment NOT LIKE '%Pushbuild%')
OR (SELECT count(*) = 0 FROM information_schema.collations
WHERE collation_name = 'ucs2_bin')`)
{
skip Test needs Enterprise, Classic , regular Pushbuild or Source-without-max build;
}
--source suite/funcs_1/datadict/charset_collation.inc
# Tests checking the content of the information_schema tables
# character_sets
# collations
# collation_character_set_applicability
#
# Content variant 2 (compile from source with "max")
#
# Please read suite/funcs_1/datadict/charset_collation.inc for
# additional information.
#
# Created:
# 2007-12-18 mleich - remove the unstable character_set/collation subtests
# from include/datadict-master.inc
# - create this new test
#
if (`SELECT @@version_comment NOT LIKE '%Source%'
OR NOT EXISTS (SELECT 1 FROM information_schema.collations
WHERE collation_name = 'utf8_general_cs')`)
{
skip Test needs Source build with "max";
}
--source suite/funcs_1/datadict/charset_collation.inc
# Tests checking the content of the information_schema tables
# character_sets
# collations
# collation_character_set_applicability
#
# Content variant 3 which should fit to
# Community and Cluster builds (binaries provided by MySQL)
#
# Please read suite/funcs_1/datadict/charset_collation.inc for
# additional information.
#
# Created:
# 2007-12-18 mleich - remove the unstable character_set/collation subtests
# from include/datadict-master.inc
# - create this new test
#
if (`SELECT @@version_comment NOT LIKE '%Community%'
AND @@version_comment NOT LIKE '%Cluster%'
AND @@version_comment NOT LIKE '%Advanced%'`)
{
skip Test needs Community, Cluster or Advanced build;
}
--source suite/funcs_1/datadict/charset_collation.inc
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment