3
DROP TABLE IF EXISTS t1;
4
DROP TABLE IF EXISTS t2;
5
DROP TABLE IF EXISTS t3;
6
DROP TABLE IF EXISTS t4;
10
# Test Prepares Statement with Japanese character in sjis encoding
14
SET character_set_database = sjis;
17
CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = InnoDB;
18
CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = InnoDB;
23
)DEFAULT CHARSET = sjis ENGINE = InnoDB;
24
CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = InnoDB;
26
INSERT INTO t1 VALUES ('xxx');
27
INSERT INTO t2 VALUES ('����\');
28
INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z');
29
INSERT INTO t4 VALUES ('�'),('��'),('�\');
31
# Japanese parameter for column name
32
# the parameter for stmt is not interpreted as column name
33
PREPARE stmt1 FROM 'SELECT ? FROM t3';
34
PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?';
35
PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?';
36
# Japanese parameter for function argument
37
PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)';
38
PREPARE stmt5 FROM 'SELECT CHARSET(?)';
39
PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1';
40
PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2';
41
PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2';
42
PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1';
43
PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2';
44
PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1';
45
PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1';
46
# Japanese parameter for UPDATE
47
PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?';
48
PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\'';
52
EXECUTE stmt1 USING @arg;
53
EXECUTE stmt2 USING @arg;
54
EXECUTE stmt3 USING @arg;
55
EXECUTE stmt4 USING @arg;
56
EXECUTE stmt5 USING @arg;
57
EXECUTE stmt6 USING @arg;
58
EXECUTE stmt7 USING @arg;
59
EXECUTE stmt8 USING @arg;
60
EXECUTE stmt9 USING @arg;
61
EXECUTE stmt10 USING @arg;
62
EXECUTE stmt11 USING @arg;
63
EXECUTE stmt12 USING @arg;
64
EXECUTE stmt13 USING @arg;
66
EXECUTE stmt14 USING @arg;
71
EXECUTE stmt1 USING @arg;
72
EXECUTE stmt2 USING @arg;
73
EXECUTE stmt3 USING @arg;
74
EXECUTE stmt4 USING @arg;
75
EXECUTE stmt5 USING @arg;
76
EXECUTE stmt6 USING @arg;
77
EXECUTE stmt7 USING @arg;
78
EXECUTE stmt8 USING @arg;
79
EXECUTE stmt9 USING @arg;
80
EXECUTE stmt10 USING @arg;
81
EXECUTE stmt11 USING @arg;
82
EXECUTE stmt12 USING @arg;
83
EXECUTE stmt13 USING @arg;
85
EXECUTE stmt14 USING @arg;
90
EXECUTE stmt1 USING @arg;
91
EXECUTE stmt2 USING @arg;
92
EXECUTE stmt3 USING @arg;
93
EXECUTE stmt4 USING @arg;
94
EXECUTE stmt5 USING @arg;
95
EXECUTE stmt6 USING @arg;
96
EXECUTE stmt7 USING @arg;
97
EXECUTE stmt8 USING @arg;
98
EXECUTE stmt9 USING @arg;
99
EXECUTE stmt10 USING @arg;
100
EXECUTE stmt11 USING @arg;
101
EXECUTE stmt12 USING @arg;
102
EXECUTE stmt13 USING @arg;
104
EXECUTE stmt14 USING @arg;
107
DEALLOCATE PREPARE stmt1;
108
DEALLOCATE PREPARE stmt2;
109
DEALLOCATE PREPARE stmt3;
110
DEALLOCATE PREPARE stmt4;
111
DEALLOCATE PREPARE stmt5;
112
DEALLOCATE PREPARE stmt6;
113
DEALLOCATE PREPARE stmt7;
114
DEALLOCATE PREPARE stmt8;
115
DEALLOCATE PREPARE stmt9;
116
DEALLOCATE PREPARE stmt10;
117
DEALLOCATE PREPARE stmt11;
118
DEALLOCATE PREPARE stmt12;
119
DEALLOCATE PREPARE stmt13;
120
DEALLOCATE PREPARE stmt14;
128
CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MyISAM;
129
CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MyISAM;
134
)DEFAULT CHARSET = sjis ENGINE = MyISAM;
135
CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = MyISAM;
137
INSERT INTO t1 VALUES ('xxx');
138
INSERT INTO t2 VALUES ('����\');
139
INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z');
140
INSERT INTO t4 VALUES ('�'),('��'),('�\' );
142
# Japanese parameter for column name
143
PREPARE stmt1 FROM 'SELECT ? FROM t3';
144
PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?';
145
PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?';
146
# Japanese parameter for function argument
147
PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)';
148
PREPARE stmt5 FROM 'SELECT CHARSET(?)';
149
PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1';
150
PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2';
151
PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2';
152
PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1';
153
PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2';
154
PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1';
155
PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1';
156
# Japanese parameter for UPDATE
157
PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?';
158
PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\'';
162
EXECUTE stmt1 USING @arg;
163
EXECUTE stmt2 USING @arg;
164
EXECUTE stmt3 USING @arg;
165
EXECUTE stmt4 USING @arg;
166
EXECUTE stmt5 USING @arg;
167
EXECUTE stmt6 USING @arg;
168
EXECUTE stmt7 USING @arg;
169
EXECUTE stmt8 USING @arg;
170
EXECUTE stmt9 USING @arg;
171
EXECUTE stmt10 USING @arg;
172
EXECUTE stmt11 USING @arg;
173
EXECUTE stmt12 USING @arg;
174
EXECUTE stmt13 USING @arg;
176
EXECUTE stmt14 USING @arg;
181
EXECUTE stmt1 USING @arg;
182
EXECUTE stmt2 USING @arg;
183
EXECUTE stmt3 USING @arg;
184
EXECUTE stmt4 USING @arg;
185
EXECUTE stmt5 USING @arg;
186
EXECUTE stmt6 USING @arg;
187
EXECUTE stmt7 USING @arg;
188
EXECUTE stmt8 USING @arg;
189
EXECUTE stmt9 USING @arg;
190
EXECUTE stmt10 USING @arg;
191
EXECUTE stmt11 USING @arg;
192
EXECUTE stmt12 USING @arg;
193
EXECUTE stmt13 USING @arg;
195
EXECUTE stmt14 USING @arg;
200
EXECUTE stmt1 USING @arg;
201
EXECUTE stmt2 USING @arg;
202
EXECUTE stmt3 USING @arg;
203
EXECUTE stmt4 USING @arg;
204
EXECUTE stmt5 USING @arg;
205
EXECUTE stmt6 USING @arg;
206
EXECUTE stmt7 USING @arg;
207
EXECUTE stmt8 USING @arg;
208
EXECUTE stmt9 USING @arg;
209
EXECUTE stmt10 USING @arg;
210
EXECUTE stmt11 USING @arg;
211
EXECUTE stmt12 USING @arg;
212
EXECUTE stmt13 USING @arg;
214
EXECUTE stmt14 USING @arg;
217
DEALLOCATE PREPARE stmt1;
218
DEALLOCATE PREPARE stmt2;
219
DEALLOCATE PREPARE stmt3;
220
DEALLOCATE PREPARE stmt4;
221
DEALLOCATE PREPARE stmt5;
222
DEALLOCATE PREPARE stmt6;
223
DEALLOCATE PREPARE stmt7;
224
DEALLOCATE PREPARE stmt8;
225
DEALLOCATE PREPARE stmt9;
226
DEALLOCATE PREPARE stmt10;
227
DEALLOCATE PREPARE stmt11;
228
DEALLOCATE PREPARE stmt12;
229
DEALLOCATE PREPARE stmt13;
230
DEALLOCATE PREPARE stmt14;
238
CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MEMORY;
239
CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MEMORY;
244
)DEFAULT CHARSET = sjis ENGINE = MEMORY;
245
CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE =MEMORY;
247
INSERT INTO t1 VALUES ('xxx');
248
INSERT INTO t2 VALUES ('����\');
249
INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z');
250
INSERT INTO t4 VALUES ('�'),('��'),('�\' );
252
# Japanese parameter for column name
253
PREPARE stmt1 FROM 'SELECT ? FROM t3';
254
PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?';
255
PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?';
256
# Japanese parameter for function argument
257
PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)';
258
PREPARE stmt5 FROM 'SELECT CHARSET(?)';
259
PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1';
260
PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2';
261
PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2';
262
PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1';
263
PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2';
264
PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1';
265
PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1';
266
# Japanese parameter for UPDATE
267
PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?';
268
PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\'';
272
EXECUTE stmt1 USING @arg;
273
EXECUTE stmt2 USING @arg;
274
EXECUTE stmt3 USING @arg;
275
EXECUTE stmt4 USING @arg;
276
EXECUTE stmt5 USING @arg;
277
EXECUTE stmt6 USING @arg;
278
EXECUTE stmt7 USING @arg;
279
EXECUTE stmt8 USING @arg;
280
EXECUTE stmt9 USING @arg;
281
EXECUTE stmt10 USING @arg;
282
EXECUTE stmt11 USING @arg;
283
EXECUTE stmt12 USING @arg;
284
EXECUTE stmt13 USING @arg;
286
EXECUTE stmt14 USING @arg;
291
EXECUTE stmt1 USING @arg;
292
EXECUTE stmt2 USING @arg;
293
EXECUTE stmt3 USING @arg;
294
EXECUTE stmt4 USING @arg;
295
EXECUTE stmt5 USING @arg;
296
EXECUTE stmt6 USING @arg;
297
EXECUTE stmt7 USING @arg;
298
EXECUTE stmt8 USING @arg;
299
EXECUTE stmt9 USING @arg;
300
EXECUTE stmt10 USING @arg;
301
EXECUTE stmt11 USING @arg;
302
EXECUTE stmt12 USING @arg;
303
EXECUTE stmt13 USING @arg;
305
EXECUTE stmt14 USING @arg;
310
EXECUTE stmt1 USING @arg;
311
EXECUTE stmt2 USING @arg;
312
EXECUTE stmt3 USING @arg;
313
EXECUTE stmt4 USING @arg;
314
EXECUTE stmt5 USING @arg;
315
EXECUTE stmt6 USING @arg;
316
EXECUTE stmt7 USING @arg;
317
EXECUTE stmt8 USING @arg;
318
EXECUTE stmt9 USING @arg;
319
EXECUTE stmt10 USING @arg;
320
EXECUTE stmt11 USING @arg;
321
EXECUTE stmt12 USING @arg;
322
EXECUTE stmt13 USING @arg;
324
EXECUTE stmt14 USING @arg;
327
DEALLOCATE PREPARE stmt1;
328
DEALLOCATE PREPARE stmt2;
329
DEALLOCATE PREPARE stmt3;
330
DEALLOCATE PREPARE stmt4;
331
DEALLOCATE PREPARE stmt5;
332
DEALLOCATE PREPARE stmt6;
333
DEALLOCATE PREPARE stmt7;
334
DEALLOCATE PREPARE stmt8;
335
DEALLOCATE PREPARE stmt9;
336
DEALLOCATE PREPARE stmt10;
337
DEALLOCATE PREPARE stmt11;
338
DEALLOCATE PREPARE stmt12;
339
DEALLOCATE PREPARE stmt13;
340
DEALLOCATE PREPARE stmt14;
348
CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = BDB;
349
CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = BDB;
354
)DEFAULT CHARSET = sjis ENGINE = BDB;
355
CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = BDB;
356
INSERT INTO t1 VALUES ('xxx');
357
INSERT INTO t2 VALUES ('����\');
358
INSERT INTO t3 VALUES ('x','x','x'),('x','x','x'),('y','y','y'),('y','y','y'),('z','z','z'),('z','z','z');
359
INSERT INTO t4 VALUES ('�'),('��'),('�\' );
361
# Japanese parameter for column name
362
PREPARE stmt1 FROM 'SELECT ? FROM t3';
363
PREPARE stmt2 FROM 'SELECT * FROM t3 ORDER BY ?';
364
PREPARE stmt3 FROM 'SELECT COUNT(*) FROM t3 GROUP BY ?';
365
# Japanese parameter for function argument
366
PREPARE stmt4 FROM 'SELECT CHAR_LENGTH(?)';
367
PREPARE stmt5 FROM 'SELECT CHARSET(?)';
368
PREPARE stmt6 FROM 'SELECT INSERT(c1,1,1,?) FROM t1';
369
PREPARE stmt7 FROM 'SELECT INSTR(c1,?) FROM t2';
370
PREPARE stmt8 FROM 'SELECT LOCATE(?,c1) FROM t2';
371
PREPARE stmt9 FROM 'SELECT LPAD(c1,10,?) FROM t1';
372
PREPARE stmt10 FROM 'SELECT REPLACE(c1,?,\'x\') FROM t2';
373
PREPARE stmt11 FROM 'SELECT REPLACE(c1,\'x\',?) FROM t1';
374
PREPARE stmt12 FROM 'SELECT RPAD(c1,10,?) FROM t1';
375
# Japanese parameter for UPDATE
376
PREPARE stmt13 FROM 'UPDATE t4 SET c1=\'x\' WHERE c1=?';
377
PREPARE stmt14 FROM 'UPDATE t4 SET c1=? WHERE c1=\'x\'';
381
EXECUTE stmt1 USING @arg;
382
EXECUTE stmt2 USING @arg;
383
EXECUTE stmt3 USING @arg;
384
EXECUTE stmt4 USING @arg;
385
EXECUTE stmt5 USING @arg;
386
EXECUTE stmt6 USING @arg;
387
EXECUTE stmt7 USING @arg;
388
EXECUTE stmt8 USING @arg;
389
EXECUTE stmt9 USING @arg;
390
EXECUTE stmt10 USING @arg;
391
EXECUTE stmt11 USING @arg;
392
EXECUTE stmt12 USING @arg;
393
EXECUTE stmt13 USING @arg;
395
EXECUTE stmt14 USING @arg;
400
EXECUTE stmt1 USING @arg;
401
EXECUTE stmt2 USING @arg;
402
EXECUTE stmt3 USING @arg;
403
EXECUTE stmt4 USING @arg;
404
EXECUTE stmt5 USING @arg;
405
EXECUTE stmt6 USING @arg;
406
EXECUTE stmt7 USING @arg;
407
EXECUTE stmt8 USING @arg;
408
EXECUTE stmt9 USING @arg;
409
EXECUTE stmt10 USING @arg;
410
EXECUTE stmt11 USING @arg;
411
EXECUTE stmt12 USING @arg;
412
EXECUTE stmt13 USING @arg;
414
EXECUTE stmt14 USING @arg;
419
EXECUTE stmt1 USING @arg;
420
EXECUTE stmt2 USING @arg;
421
EXECUTE stmt3 USING @arg;
422
EXECUTE stmt4 USING @arg;
423
EXECUTE stmt5 USING @arg;
424
EXECUTE stmt6 USING @arg;
425
EXECUTE stmt7 USING @arg;
426
EXECUTE stmt8 USING @arg;
427
EXECUTE stmt9 USING @arg;
428
EXECUTE stmt10 USING @arg;
429
EXECUTE stmt11 USING @arg;
430
EXECUTE stmt12 USING @arg;
431
EXECUTE stmt13 USING @arg;
433
EXECUTE stmt14 USING @arg;
436
DEALLOCATE PREPARE stmt1;
437
DEALLOCATE PREPARE stmt2;
438
DEALLOCATE PREPARE stmt3;
439
DEALLOCATE PREPARE stmt4;
440
DEALLOCATE PREPARE stmt5;
441
DEALLOCATE PREPARE stmt6;
442
DEALLOCATE PREPARE stmt7;
443
DEALLOCATE PREPARE stmt8;
444
DEALLOCATE PREPARE stmt9;
445
DEALLOCATE PREPARE stmt10;
446
DEALLOCATE PREPARE stmt11;
447
DEALLOCATE PREPARE stmt12;
448
DEALLOCATE PREPARE stmt13;
449
DEALLOCATE PREPARE stmt14;