~ubuntu-branches/ubuntu/precise/mysql-5.1/precise

« back to all changes in this revision

Viewing changes to mysql-test/suite/jp/t/jp_ps_sjis.test

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Tretkowski
  • Date: 2010-03-17 14:56:02 UTC
  • Revision ID: james.westby@ubuntu.com-20100317145602-x7e30l1b2sb5s6w6
Tags: upstream-5.1.45
Import upstream version 5.1.45

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--source include/have_sjis.inc
 
2
--source include/have_innodb.inc
 
3
 
 
4
--character_set sjis
 
5
--disable_warnings
 
6
DROP TABLE IF EXISTS t1;
 
7
DROP TABLE IF EXISTS t2;
 
8
DROP TABLE IF EXISTS t3;
 
9
DROP TABLE IF EXISTS t4;
 
10
--enable_warnings
 
11
 
 
12
#
 
13
# Test Prepares Statement with Japanese character in sjis encoding
 
14
#
 
15
 
 
16
SET NAMES sjis;
 
17
SET character_set_database = sjis;
 
18
 
 
19
### Test InnoDB ###
 
20
CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = InnoDB;
 
21
CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = InnoDB;
 
22
CREATE TABLE t3(
 
23
 `�`  char(1),
 
24
 `��` char(1),
 
25
 `�\` char(1)
 
26
)DEFAULT CHARSET = sjis ENGINE = InnoDB;
 
27
CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = InnoDB;
 
28
 
 
29
INSERT INTO t1 VALUES ('xxx');
 
30
INSERT INTO t2 VALUES ('����\');
 
31
INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z');
 
32
INSERT INTO t4 VALUES ('�'),('��'),('�\');
 
33
 
 
34
# Japanese parameter for column name
 
35
# the parameter for stmt is not interpreted as column name
 
36
PREPARE stmt1 FROM 'SELECT ? FROM t3';
 
37
PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?';
 
38
PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?';
 
39
# Japanese parameter for function argument
 
40
PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)';
 
41
PREPARE stmt5 FROM 'SELECT CHARSET(?)';
 
42
PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1';
 
43
PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2';
 
44
PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2';
 
45
PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1';
 
46
PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2';
 
47
PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1';
 
48
PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1';
 
49
# Japanese parameter for UPDATE
 
50
PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?';
 
51
PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\'';
 
52
 
 
53
## Test jisx0201 ##
 
54
SET @arg = '�';
 
55
EXECUTE stmt1 USING @arg;
 
56
EXECUTE stmt2 USING @arg;
 
57
EXECUTE stmt3 USING @arg;
 
58
EXECUTE stmt4 USING @arg;
 
59
EXECUTE stmt5 USING @arg;
 
60
EXECUTE stmt6 USING @arg;
 
61
EXECUTE stmt7 USING @arg;
 
62
EXECUTE stmt8 USING @arg;
 
63
EXECUTE stmt9 USING @arg;
 
64
EXECUTE stmt10 USING @arg;
 
65
EXECUTE stmt11 USING @arg;
 
66
EXECUTE stmt12 USING @arg;
 
67
EXECUTE stmt13 USING @arg;
 
68
SELECT * FROM t4;
 
69
EXECUTE stmt14 USING @arg;
 
70
SELECT * FROM t4;
 
71
 
 
72
## Test jisx0208 ##
 
73
SET @arg = '��';
 
74
EXECUTE stmt1 USING @arg;
 
75
EXECUTE stmt2 USING @arg;
 
76
EXECUTE stmt3 USING @arg;
 
77
EXECUTE stmt4 USING @arg;
 
78
EXECUTE stmt5 USING @arg;
 
79
EXECUTE stmt6 USING @arg;
 
80
EXECUTE stmt7 USING @arg;
 
81
EXECUTE stmt8 USING @arg;
 
82
EXECUTE stmt9 USING @arg;
 
83
EXECUTE stmt10 USING @arg;
 
84
EXECUTE stmt11 USING @arg;
 
85
EXECUTE stmt12 USING @arg;
 
86
EXECUTE stmt13 USING @arg;
 
87
SELECT * FROM t4;
 
88
EXECUTE stmt14 USING @arg;
 
89
SELECT * FROM t4;
 
90
 
 
91
# Test jisx0212 ##
 
92
SET @arg = '�\';
 
93
EXECUTE stmt1 USING @arg;
 
94
EXECUTE stmt2 USING @arg;
 
95
EXECUTE stmt3 USING @arg;
 
96
EXECUTE stmt4 USING @arg;
 
97
EXECUTE stmt5 USING @arg;
 
98
EXECUTE stmt6 USING @arg;
 
99
EXECUTE stmt7 USING @arg;
 
100
EXECUTE stmt8 USING @arg;
 
101
EXECUTE stmt9 USING @arg;
 
102
EXECUTE stmt10 USING @arg;
 
103
EXECUTE stmt11 USING @arg;
 
104
EXECUTE stmt12 USING @arg;
 
105
EXECUTE stmt13 USING @arg;
 
106
SELECT * FROM t4;
 
107
EXECUTE stmt14 USING @arg;
 
108
SELECT * FROM t4;
 
109
 
 
110
DEALLOCATE PREPARE stmt1;
 
111
DEALLOCATE PREPARE stmt2;
 
112
DEALLOCATE PREPARE stmt3;
 
113
DEALLOCATE PREPARE stmt4;
 
114
DEALLOCATE PREPARE stmt5;
 
115
DEALLOCATE PREPARE stmt6;
 
116
DEALLOCATE PREPARE stmt7;
 
117
DEALLOCATE PREPARE stmt8;
 
118
DEALLOCATE PREPARE stmt9;
 
119
DEALLOCATE PREPARE stmt10;
 
120
DEALLOCATE PREPARE stmt11;
 
121
DEALLOCATE PREPARE stmt12;
 
122
DEALLOCATE PREPARE stmt13;
 
123
DEALLOCATE PREPARE stmt14;
 
124
 
 
125
DROP TABLE t1;
 
126
DROP TABLE t2;
 
127
DROP TABLE t3;
 
128
DROP TABLE t4;
 
129
 
 
130
### Test MyISAM ###
 
131
CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MyISAM;
 
132
CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MyISAM;
 
133
CREATE TABLE t3(
 
134
 `�` char(1),
 
135
 `��` char(1),
 
136
 `�\` char(1)
 
137
)DEFAULT CHARSET = sjis ENGINE = MyISAM;
 
138
CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = MyISAM;
 
139
 
 
140
INSERT INTO t1 VALUES ('xxx');
 
141
INSERT INTO t2 VALUES ('����\');
 
142
INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z');
 
143
INSERT INTO t4 VALUES ('�'),('��'),('�\' );
 
144
 
 
145
# Japanese parameter for column name
 
146
PREPARE stmt1 FROM 'SELECT ? FROM t3';
 
147
PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?';
 
148
PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?';
 
149
# Japanese parameter for function argument
 
150
PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)';
 
151
PREPARE stmt5 FROM 'SELECT CHARSET(?)';
 
152
PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1';
 
153
PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2';
 
154
PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2';
 
155
PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1';
 
156
PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2';
 
157
PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1';
 
158
PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1';
 
159
# Japanese parameter for UPDATE
 
160
PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?';
 
161
PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\'';
 
162
 
 
163
## Test jisx0201 ##
 
164
SET @arg = '�';
 
165
EXECUTE stmt1 USING @arg;
 
166
EXECUTE stmt2 USING @arg;
 
167
EXECUTE stmt3 USING @arg;
 
168
EXECUTE stmt4 USING @arg;
 
169
EXECUTE stmt5 USING @arg;
 
170
EXECUTE stmt6 USING @arg;
 
171
EXECUTE stmt7 USING @arg;
 
172
EXECUTE stmt8 USING @arg;
 
173
EXECUTE stmt9 USING @arg;
 
174
EXECUTE stmt10 USING @arg;
 
175
EXECUTE stmt11 USING @arg;
 
176
EXECUTE stmt12 USING @arg;
 
177
EXECUTE stmt13 USING @arg;
 
178
SELECT * FROM t4;
 
179
EXECUTE stmt14 USING @arg;
 
180
SELECT * FROM t4;
 
181
 
 
182
## Test jisx0208 ##
 
183
SET @arg = '��';
 
184
EXECUTE stmt1 USING @arg;
 
185
EXECUTE stmt2 USING @arg;
 
186
EXECUTE stmt3 USING @arg;
 
187
EXECUTE stmt4 USING @arg;
 
188
EXECUTE stmt5 USING @arg;
 
189
EXECUTE stmt6 USING @arg;
 
190
EXECUTE stmt7 USING @arg;
 
191
EXECUTE stmt8 USING @arg;
 
192
EXECUTE stmt9 USING @arg;
 
193
EXECUTE stmt10 USING @arg;
 
194
EXECUTE stmt11 USING @arg;
 
195
EXECUTE stmt12 USING @arg;
 
196
EXECUTE stmt13 USING @arg;
 
197
SELECT * FROM t4;
 
198
EXECUTE stmt14 USING @arg;
 
199
SELECT * FROM t4;
 
200
 
 
201
## Test jisx0212 ##
 
202
SET @arg = '�\';
 
203
EXECUTE stmt1 USING @arg;
 
204
EXECUTE stmt2 USING @arg;
 
205
EXECUTE stmt3 USING @arg;
 
206
EXECUTE stmt4 USING @arg;
 
207
EXECUTE stmt5 USING @arg;
 
208
EXECUTE stmt6 USING @arg;
 
209
EXECUTE stmt7 USING @arg;
 
210
EXECUTE stmt8 USING @arg;
 
211
EXECUTE stmt9 USING @arg;
 
212
EXECUTE stmt10 USING @arg;
 
213
EXECUTE stmt11 USING @arg;
 
214
EXECUTE stmt12 USING @arg;
 
215
EXECUTE stmt13 USING @arg;
 
216
SELECT * FROM t4;
 
217
EXECUTE stmt14 USING @arg;
 
218
SELECT * FROM t4;
 
219
 
 
220
DEALLOCATE PREPARE stmt1;
 
221
DEALLOCATE PREPARE stmt2;
 
222
DEALLOCATE PREPARE stmt3;
 
223
DEALLOCATE PREPARE stmt4;
 
224
DEALLOCATE PREPARE stmt5;
 
225
DEALLOCATE PREPARE stmt6;
 
226
DEALLOCATE PREPARE stmt7;
 
227
DEALLOCATE PREPARE stmt8;
 
228
DEALLOCATE PREPARE stmt9;
 
229
DEALLOCATE PREPARE stmt10;
 
230
DEALLOCATE PREPARE stmt11;
 
231
DEALLOCATE PREPARE stmt12;
 
232
DEALLOCATE PREPARE stmt13;
 
233
DEALLOCATE PREPARE stmt14;
 
234
 
 
235
DROP TABLE t1;
 
236
DROP TABLE t2;
 
237
DROP TABLE t3;
 
238
DROP TABLE t4;
 
239
 
 
240
### Test MEMORY ###
 
241
CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MEMORY;
 
242
CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MEMORY;
 
243
CREATE TABLE t3(
 
244
 `�` char(1),
 
245
 `��` char(1),
 
246
 `�\` char(1)
 
247
)DEFAULT CHARSET = sjis ENGINE = MEMORY;
 
248
CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE =MEMORY;
 
249
 
 
250
INSERT INTO t1 VALUES ('xxx');
 
251
INSERT INTO t2 VALUES ('����\');
 
252
INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z');
 
253
INSERT INTO t4 VALUES ('�'),('��'),('�\' );
 
254
 
 
255
# Japanese parameter for column name
 
256
PREPARE stmt1 FROM 'SELECT ? FROM t3';
 
257
PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?';
 
258
PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?';
 
259
# Japanese parameter for function argument
 
260
PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)';
 
261
PREPARE stmt5 FROM 'SELECT CHARSET(?)';
 
262
PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1';
 
263
PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2';
 
264
PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2';
 
265
PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1';
 
266
PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2';
 
267
PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1';
 
268
PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1';
 
269
# Japanese parameter for UPDATE
 
270
PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?';
 
271
PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\'';
 
272
 
 
273
## Test jisx0201 ##
 
274
SET @arg = '�';
 
275
EXECUTE stmt1 USING @arg;
 
276
EXECUTE stmt2 USING @arg;
 
277
EXECUTE stmt3 USING @arg;
 
278
EXECUTE stmt4 USING @arg;
 
279
EXECUTE stmt5 USING @arg;
 
280
EXECUTE stmt6 USING @arg;
 
281
EXECUTE stmt7 USING @arg;
 
282
EXECUTE stmt8 USING @arg;
 
283
EXECUTE stmt9 USING @arg;
 
284
EXECUTE stmt10 USING @arg;
 
285
EXECUTE stmt11 USING @arg;
 
286
EXECUTE stmt12 USING @arg;
 
287
EXECUTE stmt13 USING @arg;
 
288
SELECT * FROM t4;
 
289
EXECUTE stmt14 USING @arg;
 
290
SELECT * FROM t4;
 
291
 
 
292
## Test jisx0208 ##
 
293
SET @arg = '��';
 
294
EXECUTE stmt1 USING @arg;
 
295
EXECUTE stmt2 USING @arg;
 
296
EXECUTE stmt3 USING @arg;
 
297
EXECUTE stmt4 USING @arg;
 
298
EXECUTE stmt5 USING @arg;
 
299
EXECUTE stmt6 USING @arg;
 
300
EXECUTE stmt7 USING @arg;
 
301
EXECUTE stmt8 USING @arg;
 
302
EXECUTE stmt9 USING @arg;
 
303
EXECUTE stmt10 USING @arg;
 
304
EXECUTE stmt11 USING @arg;
 
305
EXECUTE stmt12 USING @arg;
 
306
EXECUTE stmt13 USING @arg;
 
307
SELECT * FROM t4;
 
308
EXECUTE stmt14 USING @arg;
 
309
SELECT * FROM t4;
 
310
 
 
311
## Test jisx0212 ##
 
312
SET @arg = '�\';
 
313
EXECUTE stmt1 USING @arg;
 
314
EXECUTE stmt2 USING @arg;
 
315
EXECUTE stmt3 USING @arg;
 
316
EXECUTE stmt4 USING @arg;
 
317
EXECUTE stmt5 USING @arg;
 
318
EXECUTE stmt6 USING @arg;
 
319
EXECUTE stmt7 USING @arg;
 
320
EXECUTE stmt8 USING @arg;
 
321
EXECUTE stmt9 USING @arg;
 
322
EXECUTE stmt10 USING @arg;
 
323
EXECUTE stmt11 USING @arg;
 
324
EXECUTE stmt12 USING @arg;
 
325
EXECUTE stmt13 USING @arg;
 
326
SELECT * FROM t4;
 
327
EXECUTE stmt14 USING @arg;
 
328
SELECT * FROM t4;
 
329
 
 
330
DEALLOCATE PREPARE stmt1;
 
331
DEALLOCATE PREPARE stmt2;
 
332
DEALLOCATE PREPARE stmt3;
 
333
DEALLOCATE PREPARE stmt4;
 
334
DEALLOCATE PREPARE stmt5;
 
335
DEALLOCATE PREPARE stmt6;
 
336
DEALLOCATE PREPARE stmt7;
 
337
DEALLOCATE PREPARE stmt8;
 
338
DEALLOCATE PREPARE stmt9;
 
339
DEALLOCATE PREPARE stmt10;
 
340
DEALLOCATE PREPARE stmt11;
 
341
DEALLOCATE PREPARE stmt12;
 
342
DEALLOCATE PREPARE stmt13;
 
343
DEALLOCATE PREPARE stmt14;
 
344
 
 
345
DROP TABLE t1;
 
346
DROP TABLE t2;
 
347
DROP TABLE t3;
 
348
DROP TABLE t4;