1
--source include/have_sjis.inc
2
--source include/have_innodb.inc
6
DROP TABLE IF EXISTS t1;
7
DROP TABLE IF EXISTS t2;
8
DROP TABLE IF EXISTS t3;
9
DROP TABLE IF EXISTS t4;
13
# Test Prepares Statement with Japanese character in sjis encoding
17
SET character_set_database = sjis;
20
CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = InnoDB;
21
CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = InnoDB;
26
)DEFAULT CHARSET = sjis ENGINE = InnoDB;
27
CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = InnoDB;
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 ('�'),('��'),('�\');
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\'';
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;
69
EXECUTE stmt14 USING @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;
88
EXECUTE stmt14 USING @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;
107
EXECUTE stmt14 USING @arg;
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;
131
CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MyISAM;
132
CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MyISAM;
137
)DEFAULT CHARSET = sjis ENGINE = MyISAM;
138
CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE = MyISAM;
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 ('�'),('��'),('�\' );
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\'';
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;
179
EXECUTE stmt14 USING @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;
198
EXECUTE stmt14 USING @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;
217
EXECUTE stmt14 USING @arg;
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;
241
CREATE TABLE t1(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MEMORY;
242
CREATE TABLE t2(c1 char(3)) DEFAULT CHARSET = sjis ENGINE = MEMORY;
247
)DEFAULT CHARSET = sjis ENGINE = MEMORY;
248
CREATE TABLE t4(c1 char(1)) DEFAULT CHARSET = sjis ENGINE =MEMORY;
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 ('�'),('��'),('�\' );
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\'';
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;
289
EXECUTE stmt14 USING @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;
308
EXECUTE stmt14 USING @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;
327
EXECUTE stmt14 USING @arg;
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;