1--source include/not_windows.inc
2--source include/have_case_sensitive_file_system.inc
3
4
5#
6# Note, please keep this file UTF-8 compatible.
7# After editing, make sure that
8#  "file mysql_locale_posix.test"
9# says
10#   "UTF-8 Unicode text"
11# or
12#   "UTF-8 Unicode English text"
13#
14
15
16#
17# Check if we're running on a POSIX-locale machine
18#
19
20--disable_query_log
21--exec locale -a > $MYSQLTEST_VARDIR/tmp/locale_a.output 2>/dev/null || true
22SET @file=REPLACE(LOAD_FILE('../../tmp/locale_a.output'), '-', '');
23#
24# Note, file content must be case sensitive.
25# Some platforms are case sensitive regarding to locale name.
26# For example, on HP-UX
27# LANG=cs_CZ.iso88592 - works fine
28# LANG=cs_CZ.ISO88592 - does not work
29#
30--remove_file $MYSQLTEST_VARDIR/tmp/locale_a.output
31
32if (`SELECT (IFNULL(@file,'') NOT LIKE '%\nde_DE.iso88591\n%')`)
33{
34  Skip Need POSIX locale de_DE.iso88591;
35}
36
37if (`SELECT (IFNULL(@file,'') NOT LIKE '%\nru_RU.koi8r\n%')`)
38{
39  Skip Need POSIX locale ru_RU.koi8r;
40}
41
42if (`SELECT (IFNULL(@file,'') NOT LIKE '%\ncs_CZ.iso88592\n%')`)
43{
44  Skip Need POSIX locale cs_CZ.iso88592;
45}
46
47if (`SELECT (IFNULL(@file,'') NOT LIKE '%\nen_US.utf8\n%')`)
48{
49  Skip Need POSIX locale en_US.utf8;
50}
51--enable_query_log
52
53
54
55SET NAMES utf8;
56
57--disable_warnings
58DROP DATABASE IF EXISTS `ó`;
59DROP DATABASE IF EXISTS `Ăł`;
60DROP DATABASE IF EXISTS `цЁ`;
61DROP DATABASE IF EXISTS `ó`;
62--enable_warnings
63
64#
65# Test some of the OS-to-MySQL character set mappings
66#
67
68
69#  {"ANSI_X3.4-1968", "ascii",    my_cs_exact},
70#  {"ansi1251",       "cp1251",   my_cs_exact},
71#  {"armscii8",       "armscii8", my_cs_exact},
72#  {"ASCII",          "ascii",    my_cs_exact},
73#  {"Big5",           "big5",     my_cs_exact},
74#  {"cp1251",         "cp1251",   my_cs_exact},
75#  {"cp1255",         "cp1255",   my_cs_exact},
76#  {"CP866",          "cp866",    my_cs_exact},
77#  {"eucCN",          "gb2312",   my_cs_exact},
78#  {"eucJP",          "ujis",     my_cs_exact},
79#  {"eucKR",          "euckr",    my_cs_exact},
80#
81#  {"gb18030",        "gb18030",  my_cs_exact},
82#
83#  {"gb2312",         "gb2312",   my_cs_exact},
84#  {"gbk",            "gbk",      my_cs_exact},
85#  {"georgianps",     "geostd8",  my_cs_exact},
86#  {"IBM-1252",       "cp1252",   my_cs_exact},
87#
88#  {"iso88591",       "latin1",   my_cs_approx},
89#  {"ISO_8859-1",     "latin1",   my_cs_approx},
90#  {"ISO8859-1",      "latin1",   my_cs_approx},
91#  {"ISO-8859-1",     "latin1",   my_cs_approx},
92
93
94#
95# _utf8 0xC3B3 = LATIN SMALL LETTER O WITH ACUTE
96# _latin1 0xC3 = LATIN CAPITAL LETTER A WITH TILDE
97# _latin1 0xB3 = SUPERSCRIPT THREE
98#
99--echo
100--echo iso88591
101--exec LC_ALL=fi_FI.iso88591 $MYSQL --default-character-set=auto test -e "SELECT @@character_set_client"
102--exec LC_ALL=fi_FI.iso88591 $MYSQLADMIN -uroot -S $MASTER_MYSOCK -P $MASTER_MYPORT --default-character-set=auto create ó
103--exec LC_ALL=fi_FI.iso88591 $MYSQL_SHOW --default-character-set=auto ó
104--exec LC_ALL=fi_FI.iso88591 $MYSQL_CHECK --default-character-set=auto "ó"
105
106
107#  {"iso885913",      "latin7",   my_cs_exact},
108#  {"ISO_8859-13",    "latin7",   my_cs_exact},
109#  {"ISO8859-13",     "latin7",   my_cs_exact},
110#  {"ISO-8859-13",    "latin7",   my_cs_exact},
111#
112#  {"iso885915",      "latin9",   my_cs_exact},
113#  {"ISO_8859-15",    "latin9",   my_cs_exact},
114#  {"ISO8859-15",     "latin9",   my_cs_exact},
115#  {"ISO-8859-15",    "latin9",   my_cs_exact},
116#
117#  {"iso88592",       "latin2",   my_cs_exact},
118#  {"ISO_8859-2",     "latin2",   my_cs_exact},
119#  {"ISO8859-2",      "latin2",   my_cs_exact},
120#  {"ISO-8859-2",     "latin2",   my_cs_exact},
121#
122
123
124#
125# _utf8 0xC3B3 = LATIN SMALL LETTER O WITH ACUTE
126# _latin2 0xC3 = LATIN CAPITAL LETTER A WITH BREVE
127# _latin2 0xB3 = LATIN SMALL LETTER L WITH STROKE
128#
129--echo
130--echo iso88592
131--exec LC_ALL=cs_CZ.iso88592 $MYSQL --character-sets-dir=$MYSQL_SHAREDIR/charsets --default-character-set=auto test -e "SELECT @@character_set_client"
132--exec LC_ALL=cs_CZ.iso88592 $MYSQLADMIN --character-sets-dir=$MYSQL_SHAREDIR/charsets  -uroot -S $MASTER_MYSOCK -P $MASTER_MYPORT --default-character-set=auto create ó
133--exec LC_ALL=cs_CZ.iso88592 $MYSQL_SHOW --character-sets-dir=$MYSQL_SHAREDIR/charsets --default-character-set=auto ó
134--exec LC_ALL=cs_CZ.iso88592 $MYSQL_CHECK --character-sets-dir=$MYSQL_SHAREDIR/charsets--default-character-set=auto "ó"
135
136
137#  {"iso88597",       "greek",    my_cs_exact},
138#  {"ISO_8859-7",     "greek",    my_cs_exact},
139#  {"ISO8859-7",      "greek",    my_cs_exact},
140#  {"ISO-8859-7",     "greek",    my_cs_exact},
141#
142#  {"iso88598",       "hebrew",   my_cs_exact},
143#  {"ISO_8859-8",     "hebrew",   my_cs_exact},
144#  {"ISO8859-8",      "hebrew",   my_cs_exact},
145#  {"ISO-8859-8",     "hebrew",   my_cs_exact},
146#
147#  {"iso88599",       "latin5",   my_cs_exact},
148#  {"ISO_8859-9",     "latin5",   my_cs_exact},
149#  {"ISO8859-9",      "latin5",   my_cs_exact},
150#  {"ISO-8859-9",     "latin5",   my_cs_exact},
151#
152#  {"koi8r",          "koi8r",    my_cs_exact},
153#  {"KOI8-R",         "koi8r",    my_cs_exact},
154#  {"koi8u",          "koi8u",    my_cs_exact},
155#  {"KOI8-U",         "koi8u",    my_cs_exact},
156#
157
158#
159# _utf8 0xC3B3 = LATIN SMALL LETTER O WITH ACUTE
160# _koi8r  0xC3 = CYRILLIC SMALL LETTER TSE
161# _koi8r  0xB3 = CYRILLIC CAPITAL LETTER IO
162#
163
164--echo
165--echo koi8r
166--exec LC_ALL=ru_RU.koi8r $MYSQL --character-sets-dir=$MYSQL_SHAREDIR/charsets --default-character-set=auto test -e "SELECT @@character_set_client"
167--exec LC_ALL=ru_RU.koi8r $MYSQLADMIN --character-sets-dir=$MYSQL_SHAREDIR/charsets -uroot -S $MASTER_MYSOCK -P $MASTER_MYPORT --default-character-set=auto create ó
168--exec LC_ALL=ru_RU.koi8r $MYSQL_SHOW --character-sets-dir=$MYSQL_SHAREDIR/charsets --default-character-set=auto ó
169--exec LC_ALL=ru_RU.koi8r $MYSQL_CHECK --character-sets-dir=$MYSQL_SHAREDIR/charsets --default-character-set=auto "ó"
170
171
172#  {"Shift_JIS",      "sjis",     my_cs_exact},
173#  {"SJIS",           "sjis",     my_cs_exact},
174#
175#  {"tis620",         "tis620",   my_cs_exact},
176#
177#  {"ujis",           "ujis",     my_cs_exact},
178#
179#  {"US-ASCII",       "ascii",    my_cs_exact},
180#
181#  {"utf8",           "utf8",     my_cs_exact},
182#  {"utf-8",          "utf8",     my_cs_exact},
183
184--echo
185--echo utf8
186--exec LC_ALL=en_US.utf8 $MYSQL --default-character-set=auto test -e "SELECT @@character_set_client"
187--exec LC_ALL=en_US.utf8 $MYSQLADMIN -uroot -S $MASTER_MYSOCK -P $MASTER_MYPORT --default-character-set=auto create ó
188--exec LC_ALL=en_US.utf8 $MYSQL_SHOW --default-character-set=auto ó
189--exec LC_ALL=en_US.utf8 $MYSQL_SHOW --default-character-set=auto "ó"
190--exec LC_ALL=en_US.utf8 $MYSQL_SHOW --default-character-set=auto "Ăł"
191--exec LC_ALL=en_US.utf8 $MYSQL_SHOW --default-character-set=auto "цЁ"
192--exec LC_ALL=en_US.utf8 $MYSQL_CHECK --default-character-set=auto ó
193--exec LC_ALL=en_US.utf8 $MYSQL_CHECK --default-character-set=auto "ó"
194--exec LC_ALL=en_US.utf8 $MYSQL_CHECK --default-character-set=auto "Ăł"
195--exec LC_ALL=en_US.utf8 $MYSQL_CHECK --default-character-set=auto "цЁ"
196
197SHOW DATABASES LIKE 'ó';
198SHOW DATABASES LIKE 'Ăł';
199SHOW DATABASES LIKE 'цЁ';
200SHOW DATABASES LIKE 'ó';
201
202DROP DATABASE `ó`;
203DROP DATABASE `Ăł`;
204DROP DATABASE `цЁ`;
205DROP DATABASE `ó`;
206