mySQL 5.0.11 sources for tomato
[tomato.git] / release / src / router / mysql / mysql-test / t / partition_error.test
blob746e52bd623a18cddd930f0a60e93ddd7b4538bc
2 # Simple test for the erroneos statements using the 
3 # partition storage engine
5 -- source include/have_partition.inc
7 --disable_warnings
8 drop table if exists t1;
9 --enable_warnings
11 let $MYSQLD_DATADIR= `SELECT @@datadir`;
13 --echo #
14 --echo # Bug#57924: crash when creating partitioned table with
15 --echo #            multiple columns in the partition key
16 --echo #
17 --error ER_FIELD_NOT_FOUND_PART_ERROR
18 CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a,b))
19 PARTITION BY KEY(a, b, a);
20 CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a,b))
21 PARTITION BY KEY(A, b);
22 DROP TABLE t1;
23 --error ER_FIELD_NOT_FOUND_PART_ERROR
24 CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a,b))
25 PARTITION BY KEY(a, b, A);
28 --echo #
29 --echo # Bug#54483: valgrind errors when making warnings for multiline inserts
30 --echo #            into partition
31 --echo #
32 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
33 CREATE TABLE t1 (a VARBINARY(10))
34 PARTITION BY RANGE (DAYOFWEEK(a))
35 (PARTITION a1 VALUES LESS THAN (60));
36 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
37 CREATE TABLE t1 (a CHAR(10))
38 PARTITION BY RANGE (DAYOFWEEK(a))
39 (PARTITION a1 VALUES LESS THAN (60));
40 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
41 CREATE TABLE t1 (a VARCHAR(10))
42 PARTITION BY RANGE (DAYOFWEEK(a))
43 (PARTITION a1 VALUES LESS THAN (60));
44 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
45 CREATE TABLE t1 (a TIMESTAMP)
46 PARTITION BY RANGE (DAYOFWEEK(a))
47 (PARTITION a1 VALUES LESS THAN (60));
48 CREATE TABLE t1 (a DATE)
49 PARTITION BY RANGE (DAYOFWEEK(a))
50 (PARTITION a1 VALUES LESS THAN (60));
51 INSERT INTO t1 VALUES ('test'),('a'),('5');
52 SHOW WARNINGS;
53 DROP TABLE t1;
54 CREATE TABLE t1 (a DATETIME)
55 PARTITION BY RANGE (DAYOFWEEK(a))
56 (PARTITION a1 VALUES LESS THAN (60));
57 INSERT INTO t1 VALUES ('test'),('a'),('5');
58 SHOW WARNINGS;
59 DROP TABLE t1;
60 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
61 CREATE TABLE t1 (a TIME)
62 PARTITION BY RANGE (DAYOFWEEK(a))
63 (PARTITION a1 VALUES LESS THAN (60));
64 SHOW WARNINGS;
66 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
67 CREATE TABLE t1 (a TIME)
68 PARTITION BY HASH (TO_DAYS(a));
69 CREATE TABLE t1 (a DATE)
70 PARTITION BY HASH (TO_DAYS(a));
71 DROP TABLE t1;
72 CREATE TABLE t1 (a DATETIME)
73 PARTITION BY HASH (TO_DAYS(a));
74 DROP TABLE t1;
75 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
76 CREATE TABLE t1 (a VARCHAR(10))
77 PARTITION BY HASH (TO_DAYS(a));
78 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
79 CREATE TABLE t1 (a INT)
80 PARTITION BY HASH (TO_DAYS(a));
82 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
83 CREATE TABLE t1 (a TIME)
84 PARTITION BY HASH (DAYOFMONTH(a));
85 CREATE TABLE t1 (a DATE)
86 PARTITION BY HASH (DAYOFMONTH(a));
87 DROP TABLE t1;
88 CREATE TABLE t1 (a DATETIME)
89 PARTITION BY HASH (DAYOFMONTH(a));
90 DROP TABLE t1;
91 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
92 CREATE TABLE t1 (a VARCHAR(10))
93 PARTITION BY HASH (DAYOFMONTH(a));
94 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
95 CREATE TABLE t1 (a INT)
96 PARTITION BY HASH (DAYOFMONTH(a));
98 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
99 CREATE TABLE t1 (a TIME)
100 PARTITION BY HASH (MONTH(a));
101 CREATE TABLE t1 (a DATE)
102 PARTITION BY HASH (MONTH(a));
103 DROP TABLE t1;
104 CREATE TABLE t1 (a DATETIME)
105 PARTITION BY HASH (MONTH(a));
106 DROP TABLE t1;
107 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
108 CREATE TABLE t1 (a VARCHAR(10))
109 PARTITION BY HASH (MONTH(a));
110 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
111 CREATE TABLE t1 (a INT)
112 PARTITION BY HASH (MONTH(a));
114 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
115 CREATE TABLE t1 (a TIME)
116 PARTITION BY HASH (DAYOFYEAR(a));
117 CREATE TABLE t1 (a DATE)
118 PARTITION BY HASH (DAYOFYEAR(a));
119 DROP TABLE t1;
120 CREATE TABLE t1 (a DATETIME)
121 PARTITION BY HASH (DAYOFYEAR(a));
122 DROP TABLE t1;
123 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
124 CREATE TABLE t1 (a VARCHAR(10))
125 PARTITION BY HASH (DAYOFYEAR(a));
126 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
127 CREATE TABLE t1 (a INT)
128 PARTITION BY HASH (DAYOFYEAR(a));
130 CREATE TABLE t1 (a TIME)
131 PARTITION BY HASH (HOUR(a));
132 DROP TABLE t1;
133 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
134 CREATE TABLE t1 (a DATE)
135 PARTITION BY HASH (HOUR(a));
136 CREATE TABLE t1 (a DATETIME)
137 PARTITION BY HASH (HOUR(a));
138 DROP TABLE t1;
139 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
140 CREATE TABLE t1 (a VARCHAR(10))
141 PARTITION BY HASH (HOUR(a));
142 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
143 CREATE TABLE t1 (a INT)
144 PARTITION BY HASH (HOUR(a));
146 CREATE TABLE t1 (a TIME)
147 PARTITION BY HASH (MINUTE(a));
148 DROP TABLE t1;
149 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
150 CREATE TABLE t1 (a DATE)
151 PARTITION BY HASH (MINUTE(a));
152 CREATE TABLE t1 (a DATETIME)
153 PARTITION BY HASH (MINUTE(a));
154 DROP TABLE t1;
155 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
156 CREATE TABLE t1 (a VARCHAR(10))
157 PARTITION BY HASH (MINUTE(a));
158 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
159 CREATE TABLE t1 (a INT)
160 PARTITION BY HASH (MINUTE(a));
162 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
163 CREATE TABLE t1 (a TIME)
164 PARTITION BY HASH (QUARTER(a));
165 CREATE TABLE t1 (a DATE)
166 PARTITION BY HASH (QUARTER(a));
167 DROP TABLE t1;
168 CREATE TABLE t1 (a DATETIME)
169 PARTITION BY HASH (QUARTER(a));
170 DROP TABLE t1;
171 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
172 CREATE TABLE t1 (a VARCHAR(10))
173 PARTITION BY HASH (QUARTER(a));
174 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
175 CREATE TABLE t1 (a INT)
176 PARTITION BY HASH (QUARTER(a));
178 CREATE TABLE t1 (a TIME)
179 PARTITION BY HASH (SECOND(a));
180 DROP TABLE t1;
181 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
182 CREATE TABLE t1 (a DATE)
183 PARTITION BY HASH (SECOND(a));
184 CREATE TABLE t1 (a DATETIME)
185 PARTITION BY HASH (SECOND(a));
186 DROP TABLE t1;
187 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
188 CREATE TABLE t1 (a VARCHAR(10))
189 PARTITION BY HASH (SECOND(a));
190 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
191 CREATE TABLE t1 (a INT)
192 PARTITION BY HASH (SECOND(a));
194 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
195 CREATE TABLE t1 (a TIME)
196 PARTITION BY HASH (YEARWEEK(a));
197 CREATE TABLE t1 (a DATE)
198 PARTITION BY HASH (YEARWEEK(a));
199 DROP TABLE t1;
200 CREATE TABLE t1 (a DATETIME)
201 PARTITION BY HASH (YEARWEEK(a));
202 DROP TABLE t1;
203 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
204 CREATE TABLE t1 (a VARCHAR(10))
205 PARTITION BY HASH (YEARWEEK(a));
206 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
207 CREATE TABLE t1 (a INT)
208 PARTITION BY HASH (YEARWEEK(a));
210 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
211 CREATE TABLE t1 (a TIME)
212 PARTITION BY HASH (WEEKDAY(a));
213 CREATE TABLE t1 (a DATE)
214 PARTITION BY HASH (WEEKDAY(a));
215 DROP TABLE t1;
216 CREATE TABLE t1 (a DATETIME)
217 PARTITION BY HASH (WEEKDAY(a));
218 DROP TABLE t1;
219 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
220 CREATE TABLE t1 (a VARCHAR(10))
221 PARTITION BY HASH (WEEKDAY(a));
222 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
223 CREATE TABLE t1 (a INT)
224 PARTITION BY HASH (WEEKDAY(a));
225 --echo # TO_SECONDS() is added in 5.5.
227 --error ER_PARSE_ERROR
228 CREATE TABLE t1 (a TIME)
229 PARTITION BY HASH (TO_SECONDS(a));
230 #--error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
231 #CREATE TABLE t1 (a TIME)
232 #PARTITION BY HASH (TO_SECONDS(a));
233 #CREATE TABLE t1 (a DATE)
234 #PARTITION BY HASH (TO_SECONDS(a));
235 #DROP TABLE t1;
236 #CREATE TABLE t1 (a DATETIME)
237 #PARTITION BY HASH (TO_SECONDS(a));
238 #DROP TABLE t1;
239 #--error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
240 #CREATE TABLE t1 (a VARCHAR(10))
241 #PARTITION BY HASH (TO_SECONDS(a));
242 #--error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
243 #CREATE TABLE t1 (a INT)
244 #PARTITION BY HASH (TO_SECONDS(a));
246 CREATE TABLE t1 (a TIME)
247 PARTITION BY HASH (TIME_TO_SEC(a));
248 DROP TABLE t1;
249 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
250 CREATE TABLE t1 (a DATE)
251 PARTITION BY HASH (TIME_TO_SEC(a));
252 CREATE TABLE t1 (a DATETIME)
253 PARTITION BY HASH (TIME_TO_SEC(a));
254 DROP TABLE t1;
255 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
256 CREATE TABLE t1 (a VARCHAR(10))
257 PARTITION BY HASH (TIME_TO_SEC(a));
258 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
259 CREATE TABLE t1 (a INT)
260 PARTITION BY HASH (TIME_TO_SEC(a));
262 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
263 CREATE TABLE t1 (a TIME)
264 PARTITION BY HASH (FROM_DAYS(a));
265 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
266 CREATE TABLE t1 (a DATE)
267 PARTITION BY HASH (FROM_DAYS(a));
268 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
269 CREATE TABLE t1 (a DATETIME)
270 PARTITION BY HASH (FROM_DAYS(a));
271 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
272 CREATE TABLE t1 (a VARCHAR(10))
273 PARTITION BY HASH (TO_DAYS(FROM_DAYS(a)));
274 --error ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
275 CREATE TABLE t1 (a VARCHAR(10))
276 PARTITION BY HASH (FROM_DAYS(a));
277 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
278 CREATE TABLE t1 (a INT)
279 PARTITION BY HASH (TO_DAYS(FROM_DAYS(a)));
280 --error ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
281 CREATE TABLE t1 (a INT)
282 PARTITION BY HASH (FROM_DAYS(a));
284 CREATE TABLE t1 (a TIME)
285 PARTITION BY HASH (MICROSECOND(a));
286 DROP TABLE t1;
287 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
288 CREATE TABLE t1 (a DATE)
289 PARTITION BY HASH (MICROSECOND(a));
290 CREATE TABLE t1 (a DATETIME)
291 PARTITION BY HASH (MICROSECOND(a));
292 DROP TABLE t1;
293 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
294 CREATE TABLE t1 (a VARCHAR(10))
295 PARTITION BY HASH (MICROSECOND(a));
296 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
297 CREATE TABLE t1 (a INT)
298 PARTITION BY HASH (MICROSECOND(a));
299 --echo # Bug#57071
300 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
301 CREATE TABLE t1
302 (`date` date,
303  `extracted_week` int,
304  `yearweek` int,
305  `week` int,
306  `default_week_format` int)
307 PARTITION BY LIST (EXTRACT(WEEK FROM date) % 3)
308 (PARTITION p0 VALUES IN (0),
309  PARTITION p1 VALUES IN (1),
310  PARTITION p2 VALUES IN (2));
311 CREATE TABLE t1
312 (`date` date,
313  `extracted_week` int,
314  `yearweek` int,
315  `week` int,
316  `default_week_format` int);
317 SET @old_default_week_format := @@default_week_format;
318 SET default_week_format = 0;
319 INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
320 SET default_week_format = 1;
321 INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
322 SET default_week_format = 2;
323 INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
324 SET default_week_format = 3;
325 INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
326 SET default_week_format = 4;
327 INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
328 SET default_week_format = 5;
329 INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
330 SET default_week_format = 6;
331 INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
332 SET default_week_format = 7;
333 INSERT INTO t1 VALUES ('2000-01-01', EXTRACT(WEEK FROM '2000-01-01'), YEARWEEK('2000-01-01'), WEEK('2000-01-01'), @@default_week_format);
334 SELECT * FROM t1;
335 SET default_week_format = @old_default_week_format;
336 DROP TABLE t1;
338 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
339 CREATE TABLE t1 (a TIME)
340 PARTITION BY HASH (EXTRACT(YEAR FROM a));
341 CREATE TABLE t1 (a DATE)
342 PARTITION BY HASH (EXTRACT(YEAR FROM a));
343 DROP TABLE t1;
344 CREATE TABLE t1 (a DATETIME)
345 PARTITION BY HASH (EXTRACT(YEAR FROM a));
346 DROP TABLE t1;
347 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
348 CREATE TABLE t1 (a VARCHAR(10))
349 PARTITION BY HASH (EXTRACT(YEAR FROM a));
350 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
351 CREATE TABLE t1 (a INT)
352 PARTITION BY HASH (EXTRACT(YEAR FROM a));
354 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
355 CREATE TABLE t1 (a TIME)
356 PARTITION BY HASH (EXTRACT(YEAR_MONTH FROM a));
357 CREATE TABLE t1 (a DATE)
358 PARTITION BY HASH (EXTRACT(YEAR_MONTH FROM a));
359 DROP TABLE t1;
360 CREATE TABLE t1 (a DATETIME)
361 PARTITION BY HASH (EXTRACT(YEAR_MONTH FROM a));
362 DROP TABLE t1;
363 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
364 CREATE TABLE t1 (a VARCHAR(10))
365 PARTITION BY HASH (EXTRACT(YEAR_MONTH FROM a));
366 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
367 CREATE TABLE t1 (a INT)
368 PARTITION BY HASH (EXTRACT(YEAR_MONTH FROM a));
370 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
371 CREATE TABLE t1 (a TIME)
372 PARTITION BY HASH (EXTRACT(QUARTER FROM a));
373 CREATE TABLE t1 (a DATE)
374 PARTITION BY HASH (EXTRACT(QUARTER FROM a));
375 DROP TABLE t1;
376 CREATE TABLE t1 (a DATETIME)
377 PARTITION BY HASH (EXTRACT(QUARTER FROM a));
378 DROP TABLE t1;
379 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
380 CREATE TABLE t1 (a VARCHAR(10))
381 PARTITION BY HASH (EXTRACT(QUARTER FROM a));
382 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
383 CREATE TABLE t1 (a INT)
384 PARTITION BY HASH (EXTRACT(QUARTER FROM a));
386 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
387 CREATE TABLE t1 (a TIME)
388 PARTITION BY HASH (EXTRACT(MONTH FROM a));
389 CREATE TABLE t1 (a DATE)
390 PARTITION BY HASH (EXTRACT(MONTH FROM a));
391 DROP TABLE t1;
392 CREATE TABLE t1 (a DATETIME)
393 PARTITION BY HASH (EXTRACT(MONTH FROM a));
394 DROP TABLE t1;
395 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
396 CREATE TABLE t1 (a VARCHAR(10))
397 PARTITION BY HASH (EXTRACT(MONTH FROM a));
398 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
399 CREATE TABLE t1 (a INT)
400 PARTITION BY HASH (EXTRACT(MONTH FROM a));
402 --echo # EXTRACT(WEEK...) is disallowed, see bug#57071.
403 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
404 CREATE TABLE t1 (a TIME)
405 PARTITION BY HASH (EXTRACT(WEEK FROM a));
406 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
407 CREATE TABLE t1 (a DATE)
408 PARTITION BY HASH (EXTRACT(WEEK FROM a));
409 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
410 CREATE TABLE t1 (a DATETIME)
411 PARTITION BY HASH (EXTRACT(WEEK FROM a));
412 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
413 CREATE TABLE t1 (a VARCHAR(10))
414 PARTITION BY HASH (EXTRACT(WEEK FROM a));
415 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
416 CREATE TABLE t1 (a INT)
417 PARTITION BY HASH (EXTRACT(WEEK FROM a));
419 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
420 CREATE TABLE t1 (a TIME)
421 PARTITION BY HASH (EXTRACT(DAY FROM a));
422 CREATE TABLE t1 (a DATE)
423 PARTITION BY HASH (EXTRACT(DAY FROM a));
424 DROP TABLE t1;
425 CREATE TABLE t1 (a DATETIME)
426 PARTITION BY HASH (EXTRACT(DAY FROM a));
427 DROP TABLE t1;
428 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
429 CREATE TABLE t1 (a VARCHAR(10))
430 PARTITION BY HASH (EXTRACT(DAY FROM a));
431 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
432 CREATE TABLE t1 (a INT)
433 PARTITION BY HASH (EXTRACT(DAY FROM a));
435 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
436 CREATE TABLE t1 (a TIME)
437 PARTITION BY HASH (EXTRACT(DAY_HOUR FROM a));
438 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
439 CREATE TABLE t1 (a DATE)
440 PARTITION BY HASH (EXTRACT(DAY_HOUR FROM a));
441 CREATE TABLE t1 (a DATETIME)
442 PARTITION BY HASH (EXTRACT(DAY_HOUR FROM a));
443 DROP TABLE t1;
444 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
445 CREATE TABLE t1 (a VARCHAR(10))
446 PARTITION BY HASH (EXTRACT(DAY_HOUR FROM a));
447 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
448 CREATE TABLE t1 (a INT)
449 PARTITION BY HASH (EXTRACT(DAY_HOUR FROM a));
451 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
452 CREATE TABLE t1 (a TIME)
453 PARTITION BY HASH (EXTRACT(DAY_MINUTE FROM a));
454 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
455 CREATE TABLE t1 (a DATE)
456 PARTITION BY HASH (EXTRACT(DAY_MINUTE FROM a));
457 CREATE TABLE t1 (a DATETIME)
458 PARTITION BY HASH (EXTRACT(DAY_MINUTE FROM a));
459 DROP TABLE t1;
460 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
461 CREATE TABLE t1 (a VARCHAR(10))
462 PARTITION BY HASH (EXTRACT(DAY_MINUTE FROM a));
463 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
464 CREATE TABLE t1 (a INT)
465 PARTITION BY HASH (EXTRACT(DAY_MINUTE FROM a));
467 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
468 CREATE TABLE t1 (a TIME)
469 PARTITION BY HASH (EXTRACT(DAY_SECOND FROM a));
470 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
471 CREATE TABLE t1 (a DATE)
472 PARTITION BY HASH (EXTRACT(DAY_SECOND FROM a));
473 CREATE TABLE t1 (a DATETIME)
474 PARTITION BY HASH (EXTRACT(DAY_SECOND FROM a));
475 DROP TABLE t1;
476 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
477 CREATE TABLE t1 (a VARCHAR(10))
478 PARTITION BY HASH (EXTRACT(DAY_SECOND FROM a));
479 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
480 CREATE TABLE t1 (a INT)
481 PARTITION BY HASH (EXTRACT(DAY_SECOND FROM a));
483 CREATE TABLE t1 (a TIME)
484 PARTITION BY HASH (EXTRACT(HOUR FROM a));
485 DROP TABLE t1;
486 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
487 CREATE TABLE t1 (a DATE)
488 PARTITION BY HASH (EXTRACT(HOUR FROM a));
489 CREATE TABLE t1 (a DATETIME)
490 PARTITION BY HASH (EXTRACT(HOUR FROM a));
491 DROP TABLE t1;
492 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
493 CREATE TABLE t1 (a VARCHAR(10))
494 PARTITION BY HASH (EXTRACT(HOUR FROM a));
495 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
496 CREATE TABLE t1 (a INT)
497 PARTITION BY HASH (EXTRACT(HOUR FROM a));
499 CREATE TABLE t1 (a TIME)
500 PARTITION BY HASH (EXTRACT(HOUR_MINUTE FROM a));
501 DROP TABLE t1;
502 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
503 CREATE TABLE t1 (a DATE)
504 PARTITION BY HASH (EXTRACT(HOUR_MINUTE FROM a));
505 CREATE TABLE t1 (a DATETIME)
506 PARTITION BY HASH (EXTRACT(HOUR_MINUTE FROM a));
507 DROP TABLE t1;
508 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
509 CREATE TABLE t1 (a VARCHAR(10))
510 PARTITION BY HASH (EXTRACT(HOUR_MINUTE FROM a));
511 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
512 CREATE TABLE t1 (a INT)
513 PARTITION BY HASH (EXTRACT(HOUR_MINUTE FROM a));
515 CREATE TABLE t1 (a TIME)
516 PARTITION BY HASH (EXTRACT(HOUR_SECOND FROM a));
517 DROP TABLE t1;
518 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
519 CREATE TABLE t1 (a DATE)
520 PARTITION BY HASH (EXTRACT(HOUR_SECOND FROM a));
521 CREATE TABLE t1 (a DATETIME)
522 PARTITION BY HASH (EXTRACT(HOUR_SECOND FROM a));
523 DROP TABLE t1;
524 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
525 CREATE TABLE t1 (a VARCHAR(10))
526 PARTITION BY HASH (EXTRACT(HOUR_SECOND FROM a));
527 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
528 CREATE TABLE t1 (a INT)
529 PARTITION BY HASH (EXTRACT(HOUR_SECOND FROM a));
531 CREATE TABLE t1 (a TIME)
532 PARTITION BY HASH (EXTRACT(MINUTE FROM a));
533 DROP TABLE t1;
534 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
535 CREATE TABLE t1 (a DATE)
536 PARTITION BY HASH (EXTRACT(MINUTE FROM a));
537 CREATE TABLE t1 (a DATETIME)
538 PARTITION BY HASH (EXTRACT(MINUTE FROM a));
539 DROP TABLE t1;
540 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
541 CREATE TABLE t1 (a VARCHAR(10))
542 PARTITION BY HASH (EXTRACT(MINUTE FROM a));
543 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
544 CREATE TABLE t1 (a INT)
545 PARTITION BY HASH (EXTRACT(MINUTE FROM a));
547 CREATE TABLE t1 (a TIME)
548 PARTITION BY HASH (EXTRACT(MINUTE_SECOND FROM a));
549 DROP TABLE t1;
550 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
551 CREATE TABLE t1 (a DATE)
552 PARTITION BY HASH (EXTRACT(MINUTE_SECOND FROM a));
553 CREATE TABLE t1 (a DATETIME)
554 PARTITION BY HASH (EXTRACT(MINUTE_SECOND FROM a));
555 DROP TABLE t1;
556 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
557 CREATE TABLE t1 (a VARCHAR(10))
558 PARTITION BY HASH (EXTRACT(MINUTE_SECOND FROM a));
559 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
560 CREATE TABLE t1 (a INT)
561 PARTITION BY HASH (EXTRACT(MINUTE_SECOND FROM a));
563 CREATE TABLE t1 (a TIME)
564 PARTITION BY HASH (EXTRACT(SECOND FROM a));
565 DROP TABLE t1;
566 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
567 CREATE TABLE t1 (a DATE)
568 PARTITION BY HASH (EXTRACT(SECOND FROM a));
569 CREATE TABLE t1 (a DATETIME)
570 PARTITION BY HASH (EXTRACT(SECOND FROM a));
571 DROP TABLE t1;
572 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
573 CREATE TABLE t1 (a VARCHAR(10))
574 PARTITION BY HASH (EXTRACT(SECOND FROM a));
575 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
576 CREATE TABLE t1 (a INT)
577 PARTITION BY HASH (EXTRACT(SECOND FROM a));
579 CREATE TABLE t1 (a TIME)
580 PARTITION BY HASH (EXTRACT(MICROSECOND FROM a));
581 DROP TABLE t1;
582 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
583 CREATE TABLE t1 (a DATE)
584 PARTITION BY HASH (EXTRACT(MICROSECOND FROM a));
585 CREATE TABLE t1 (a DATETIME)
586 PARTITION BY HASH (EXTRACT(MICROSECOND FROM a));
587 DROP TABLE t1;
588 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
589 CREATE TABLE t1 (a VARCHAR(10))
590 PARTITION BY HASH (EXTRACT(MICROSECOND FROM a));
591 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
592 CREATE TABLE t1 (a INT)
593 PARTITION BY HASH (EXTRACT(MICROSECOND FROM a));
595 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
596 CREATE TABLE t1 (a TIME)
597 PARTITION BY HASH (EXTRACT(DAY_MICROSECOND FROM a));
598 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
599 CREATE TABLE t1 (a DATE)
600 PARTITION BY HASH (EXTRACT(DAY_MICROSECOND FROM a));
601 CREATE TABLE t1 (a DATETIME)
602 PARTITION BY HASH (EXTRACT(DAY_MICROSECOND FROM a));
603 DROP TABLE t1;
604 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
605 CREATE TABLE t1 (a VARCHAR(10))
606 PARTITION BY HASH (EXTRACT(DAY_MICROSECOND FROM a));
607 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
608 CREATE TABLE t1 (a INT)
609 PARTITION BY HASH (EXTRACT(DAY_MICROSECOND FROM a));
611 CREATE TABLE t1 (a TIME)
612 PARTITION BY HASH (EXTRACT(HOUR_MICROSECOND FROM a));
613 DROP TABLE t1;
614 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
615 CREATE TABLE t1 (a DATE)
616 PARTITION BY HASH (EXTRACT(HOUR_MICROSECOND FROM a));
617 CREATE TABLE t1 (a DATETIME)
618 PARTITION BY HASH (EXTRACT(HOUR_MICROSECOND FROM a));
619 DROP TABLE t1;
620 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
621 CREATE TABLE t1 (a VARCHAR(10))
622 PARTITION BY HASH (EXTRACT(HOUR_MICROSECOND FROM a));
623 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
624 CREATE TABLE t1 (a INT)
625 PARTITION BY HASH (EXTRACT(HOUR_MICROSECOND FROM a));
627 CREATE TABLE t1 (a TIME)
628 PARTITION BY HASH (EXTRACT(MINUTE_MICROSECOND FROM a));
629 DROP TABLE t1;
630 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
631 CREATE TABLE t1 (a DATE)
632 PARTITION BY HASH (EXTRACT(MINUTE_MICROSECOND FROM a));
633 CREATE TABLE t1 (a DATETIME)
634 PARTITION BY HASH (EXTRACT(MINUTE_MICROSECOND FROM a));
635 DROP TABLE t1;
636 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
637 CREATE TABLE t1 (a VARCHAR(10))
638 PARTITION BY HASH (EXTRACT(MINUTE_MICROSECOND FROM a));
639 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
640 CREATE TABLE t1 (a INT)
641 PARTITION BY HASH (EXTRACT(MINUTE_MICROSECOND FROM a));
643 CREATE TABLE t1 (a TIME)
644 PARTITION BY HASH (EXTRACT(SECOND_MICROSECOND FROM a));
645 DROP TABLE t1;
646 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
647 CREATE TABLE t1 (a DATE)
648 PARTITION BY HASH (EXTRACT(SECOND_MICROSECOND FROM a));
649 CREATE TABLE t1 (a DATETIME)
650 PARTITION BY HASH (EXTRACT(SECOND_MICROSECOND FROM a));
651 DROP TABLE t1;
652 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
653 CREATE TABLE t1 (a VARCHAR(10))
654 PARTITION BY HASH (EXTRACT(SECOND_MICROSECOND FROM a));
655 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
656 CREATE TABLE t1 (a INT)
657 PARTITION BY HASH (EXTRACT(SECOND_MICROSECOND FROM a));
659 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
660 CREATE TABLE t1 (a TIME, b DATE)
661 PARTITION BY HASH (DATEDIFF(a, b));
662 CREATE TABLE t1 (a DATE, b DATETIME)
663 PARTITION BY HASH (DATEDIFF(a, b));
664 DROP TABLE t1;
665 CREATE TABLE t1 (a DATETIME, b DATE)
666 PARTITION BY HASH (DATEDIFF(a, b));
667 DROP TABLE t1;
668 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
669 CREATE TABLE t1 (a DATE, b VARCHAR(10))
670 PARTITION BY HASH (DATEDIFF(a, b));
671 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
672 CREATE TABLE t1 (a INT, b DATETIME)
673 PARTITION BY HASH (DATEDIFF(a, b));
675 CREATE TABLE t1 (a TIME)
676 PARTITION BY HASH (TIME_TO_SEC(a));
677 DROP TABLE t1;
678 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
679 CREATE TABLE t1 (a DATE)
680 PARTITION BY HASH (TIME_TO_SEC(a));
681 CREATE TABLE t1 (a DATETIME)
682 PARTITION BY HASH (TIME_TO_SEC(a));
683 DROP TABLE t1;
684 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
685 CREATE TABLE t1 (a VARCHAR(10))
686 PARTITION BY HASH (TIME_TO_SEC(a));
687 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
688 CREATE TABLE t1 (a INT)
689 PARTITION BY HASH (TIME_TO_SEC(a));
691 --echo #
692 --echo # Bug#49161: Out of memory; restart server and try again (needed 2 bytes)
693 --echo #
694 CREATE TABLE t1 (a INT) PARTITION BY HASH (a);
695 FLUSH TABLES;
696 --remove_file $MYSQLD_DATADIR/test/t1.par
697 --replace_result $MYSQLD_DATADIR ./
698 CHECK TABLE t1;
699 --error ER_UNKNOWN_ERROR
700 SELECT * FROM t1;
701 --echo # Note that we will remove the frm file when we detect that 
702 --echo # .par file has been deleted.
703 --error ER_BAD_TABLE_ERROR
704 DROP TABLE t1;
705 --remove_file $MYSQLD_DATADIR/test/t1#P#p0.MYI
706 --remove_file $MYSQLD_DATADIR/test/t1#P#p0.MYD
708 --echo #
709 --echo # Bug#49477: Assertion `0' failed in ha_partition.cc:5530
710 --echo # with temporary table and partitions
711 --echo #
712 CREATE TABLE t1 (a INT) PARTITION BY HASH(a);
713 --error ER_PARTITION_NO_TEMPORARY
714 CREATE TEMPORARY TABLE tmp_t1 LIKE t1;
715 DROP TABLE t1;
717 --echo #
718 --echo # Bug#50392: insert_id is not reset for partitioned tables
719 --echo #            auto_increment on duplicate entry
720 CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY);
721 SET INSERT_ID= 13;
722 INSERT INTO t1 VALUES (NULL);
723 SET INSERT_ID= 12;
724 --error ER_DUP_ENTRY
725 INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
726 SHOW CREATE TABLE t1;
727 INSERT INTO t1 VALUES (NULL);
728 SELECT * FROM t1;
729 DROP TABLE t1;
730 CREATE TABLE t1 (a INT AUTO_INCREMENT PRIMARY KEY) PARTITION BY KEY(a);
731 SET INSERT_ID= 13;
732 INSERT INTO t1 VALUES (NULL);
733 SET INSERT_ID= 12;
734 --error ER_DUP_ENTRY
735 INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
736 SHOW CREATE TABLE t1;
737 INSERT INTO t1 VALUES (NULL);
738 SELECT * FROM t1;
739 DROP TABLE t1;
742 # Bug#38719: Partitioning returns a different error code for a
743 # duplicate key error
744 CREATE TABLE t1 (a INTEGER NOT NULL, PRIMARY KEY (a));
745 -- error ER_DUP_ENTRY
746 INSERT INTO t1 VALUES (1),(1);
747 DROP TABLE t1;
748 CREATE TABLE t1 (a INTEGER NOT NULL, PRIMARY KEY (a))
749 PARTITION BY KEY (a) PARTITIONS 2;
750 -- error ER_DUP_ENTRY
751 INSERT INTO t1 VALUES (1),(1);
752 DROP TABLE t1;
755 # Bug#31931: Mix of handlers error message
757 --error ER_MIX_HANDLER_ERROR
758 CREATE TABLE t1 (a INT)
759 PARTITION BY HASH (a)
760 ( PARTITION p0 ENGINE=MyISAM,
761   PARTITION p1);
762 --error ER_MIX_HANDLER_ERROR
763 CREATE TABLE t1 (a INT)
764 PARTITION BY LIST (a)
765 SUBPARTITION BY HASH (a)
766 ( PARTITION p0 VALUES IN (0)
767 ( SUBPARTITION s0, SUBPARTITION s1 ENGINE=MyISAM, SUBPARTITION s2),
768   PARTITION p1 VALUES IN (1)
769 ( SUBPARTITION s3 ENGINE=MyISAM, SUBPARTITION s4, SUBPARTITION s5 ENGINE=MyISAM));
773 # Bug 29368:
774 # Incorrect error, 1467, for syntax error when creating partition
775 --error ER_PARTITION_REQUIRES_VALUES_ERROR
776 CREATE TABLE t1 (
777   a int
779 PARTITION BY RANGE (a)
781   PARTITION p0 VALUES LESS THAN (1),
782   PARTITION p1 VALU ES LESS THAN (2)
786 # Partition by key stand-alone error
788 --error 1064
789 partition by list (a)
790 partitions 3
791 (partition x1 values in (1,2,9,4) tablespace ts1,
792  partition x2 values in (3, 11, 5, 7) tablespace ts2,
793  partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3);
796 # Partition by key list, number of partitions defined, no partition defined
798 --error ER_PARTITIONS_MUST_BE_DEFINED_ERROR
799 CREATE TABLE t1 (
800 a int not null,
801 b int not null,
802 c int not null,
803 primary key(a,b))
804 partition by list (a)
805 partitions 2;
808 # Partition by key list, wrong result type
810 --error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
811 CREATE TABLE t1 (
812 a int not null,
813 b int not null,
814 c int not null,
815 primary key(a,b))
816 partition by list (sin(a))
817 partitions 3
818 (partition x1 values in (1,2,9,4) tablespace ts1,
819  partition x2 values in (3, 11, 5, 7) tablespace ts2,
820  partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3);
823 # Partition by key, partition function not allowed
825 --error 1064
826 CREATE TABLE t1 (
827 a int not null,
828 b int not null,
829 c int not null,
830 primary key(a,b))
831 partition by key (a+2)
832 partitions 3
833 (partition x1 tablespace ts1,
834  partition x2 tablespace ts2,
835  partition x3 tablespace ts3);
838 # Partition by key, no partition name
840 --error 1064
841 CREATE TABLE t1 (
842 a int not null,
843 b int not null,
844 c int not null,
845 primary key(a,b))
846 partition by key (a)
847 partitions 3
848 (partition tablespace ts1,
849  partition x2 tablespace ts2,
850  partition x3 tablespace ts3);
853 # Partition by key, invalid field in field list
855 --error ER_FIELD_NOT_FOUND_PART_ERROR
856 CREATE TABLE t1 (
857 a int not null,
858 b int not null,
859 c int not null,
860 primary key(a,b))
861 partition by key (a,d)
862 partitions 3
863 (partition x1 tablespace ts1,
864  partition x2 tablespace ts2,
865  partition x3 tablespace ts3);
867 select load_file('$MYSQLD_DATADIR/test/t1.par');
869 # Partition by hash, invalid field in function
871 --error 1054
872 CREATE TABLE t1 (
873 a int not null,
874 b int not null,
875 c int not null,
876 primary key(a,b))
877 partition by hash (a + d)
878 partitions 3
879 (partition x1 tablespace ts1,
880  partition x2 tablespace ts2,
881  partition x3 tablespace ts3);
884 # Partition by hash, invalid result type
886 --error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
887 CREATE TABLE t1 (
888 a int not null,
889 b int not null,
890 c int not null,
891 primary key(a,b))
892 partition by hash (sin(a))
893 partitions 3
894 (partition x1 tablespace ts1,
895  partition x2 tablespace ts2,
896  partition x3 tablespace ts3);
899 # Partition by key specified 3 partitions but only defined 2 => error
901 --error 1064
902 CREATE TABLE t1 (
903 a int not null,
904 b int not null,
905 c int not null,
906 primary key(a,b))
907 partition by key (a)
908 partitions 3
909 (partition x1, partition x2);
912 # Partition by key specified 3 partitions but only defined 2 => error
914 --error 1064
915 CREATE TABLE t1 (
916 a int not null,
917 b int not null,
918 c int not null,
919 primary key(a,b))
920 partition by hash (rand(a))
921 partitions 2
922 (partition x1, partition x2);
925 # Partition by key specified 3 partitions but only defined 2 => error
927 --error 1064
928 CREATE TABLE t1 (
929 a int not null,
930 b int not null,
931 c int not null,
932 primary key(a,b))
933 partition by range (rand(a))
934 partitions 2
935 (partition x1 values less than (0), partition x2 values less than (2));
938 # Partition by key specified 3 partitions but only defined 2 => error
940 --error 1064
941 CREATE TABLE t1 (
942 a int not null,
943 b int not null,
944 c int not null,
945 primary key(a,b))
946 partition by list (rand(a))
947 partitions 2
948 (partition x1 values in (1), partition x2 values in (2));
951 # Partition by hash, values less than error
953 --error ER_PARTITION_WRONG_VALUES_ERROR
954 CREATE TABLE t1 (
955 a int not null,
956 b int not null,
957 c int not null,
958 primary key(a,b))
959 partition by hash (a)
960 partitions 2
961 (partition x1 values less than (4),
962  partition x2 values less than (5));
963 select load_file('$MYSQLD_DATADIR/test/t1.par');
966 # Partition by hash, values in error
968 --error ER_PARTITION_WRONG_VALUES_ERROR
969 CREATE TABLE t1 (
970 a int not null,
971 b int not null,
972 c int not null,
973 primary key(a,b))
974 partition by hash (a)
975 partitions 2
976 (partition x1 values in (4),
977  partition x2 values in (5));
978 select load_file('$MYSQLD_DATADIR/test/t1.par');
981 # Partition by hash, values in error
983 --error ER_PARTITION_WRONG_VALUES_ERROR
984 CREATE TABLE t1 (
985 a int not null,
986 b int not null,
987 c int not null,
988 primary key(a,b))
989 partition by hash (a)
990 partitions 2
991 (partition x1 values in (4,6),
992  partition x2 values in (5,7));
993 select load_file('$MYSQLD_DATADIR/test/t1.par');
996 # Subpartition by key, no partitions defined, single field
998 --error ER_SUBPARTITION_ERROR
999 CREATE TABLE t1 (
1000 a int not null,
1001 b int not null,
1002 c int not null,
1003 primary key (a,b))
1004 partition by key (a)
1005 subpartition by key (b);
1006 select load_file('$MYSQLD_DATADIR/test/t1.par');
1009 # Subpartition by key, no partitions defined, list of fields
1011 --error ER_SUBPARTITION_ERROR
1012 CREATE TABLE t1 (
1013 a int not null,
1014 b int not null,
1015 c int not null,
1016 primary key (a,b))
1017 partition by key (a)
1018 subpartition by key (a, b);
1019 select load_file('$MYSQLD_DATADIR/test/t1.par');
1022 # Subpartition by hash, no partitions defined
1024 --error ER_SUBPARTITION_ERROR
1025 CREATE TABLE t1 (
1026 a int not null,
1027 b int not null,
1028 c int not null,
1029 primary key (a,b))
1030 partition by key (a)
1031 subpartition by hash (a+b);
1032 select load_file('$MYSQLD_DATADIR/test/t1.par');
1035 # Subpartition by key, no partitions defined, single field
1037 --error ER_SUBPARTITION_ERROR
1038 CREATE TABLE t1 (
1039 a int not null,
1040 b int not null,
1041 c int not null,
1042 primary key (a,b))
1043 partition by key (a)
1044 subpartition by key (b);
1045 select load_file('$MYSQLD_DATADIR/test/t1.par');
1048 # Subpartition by key, no partitions defined, list of fields
1050 --error ER_SUBPARTITION_ERROR
1051 CREATE TABLE t1 (
1052 a int not null,
1053 b int not null,
1054 c int not null,
1055 primary key (a,b))
1056 partition by key (a)
1057 subpartition by key (a, b);
1058 select load_file('$MYSQLD_DATADIR/test/t1.par');
1061 # Subpartition by hash, no partitions defined
1063 --error ER_SUBPARTITION_ERROR
1064 CREATE TABLE t1 (
1065 a int not null,
1066 b int not null,
1067 c int not null,
1068 primary key (a,b))
1069 partition by key (a)
1070 subpartition by hash (a+b);
1071 select load_file('$MYSQLD_DATADIR/test/t1.par');
1074 # Subpartition by hash, no partitions defined, wrong subpartition function
1076 --error 1064
1077 CREATE TABLE t1 (
1078 a int not null,
1079 b int not null,
1080 c int not null,
1081 primary key (a,b))
1082 partition by key (a)
1083 subpartition by hash (rand(a+b));
1086 # Subpartition by hash, wrong subpartition function
1088 --error ER_SUBPARTITION_ERROR
1089 CREATE TABLE t1 (
1090 a int not null,
1091 b int not null,
1092 c int not null,
1093 primary key (a,b))
1094 partition by key (a)
1095 subpartition by hash (sin(a+b))
1096 (partition x1 (subpartition x11, subpartition x12),
1097  partition x2 (subpartition x21, subpartition x22));
1098 select load_file('$MYSQLD_DATADIR/test/t1.par');
1101 # Subpartition by hash, no partitions defined, wrong subpartition function
1103 --error 1064
1104 CREATE TABLE t1 (
1105 a int not null,
1106 b int not null,
1107 c int not null,
1108 primary key (a,b))
1109 partition by range (a)
1110 subpartition by key (a+b)
1111 (partition x1 values less than (1) (subpartition x11, subpartition x12),
1112  partition x2 values less than (2) (subpartition x21, subpartition x22));
1115 # Subpartition by hash, no partitions defined, wrong subpartition function
1117 --error ER_FIELD_NOT_FOUND_PART_ERROR
1118 CREATE TABLE t1 (
1119 a int not null,
1120 b int not null,
1121 c int not null,
1122 primary key (a,b))
1123 partition by range (a)
1124 subpartition by key (a,d)
1125 (partition x1 values less than (1) (subpartition x11, subpartition x12),
1126  partition x2 values less than (2) (subpartition x21, subpartition x22));
1127 select load_file('$MYSQLD_DATADIR/test/t1.par');
1130 # Subpartition by hash, no partitions defined, wrong subpartition function
1132 --error ER_SUBPARTITION_ERROR
1133 CREATE TABLE t1 (
1134 a int not null,
1135 b int not null,
1136 c int not null,
1137 primary key (a,b))
1138 partition by key (a)
1139 subpartition by hash (3+4);
1142 # Subpartition by hash, no partitions defined, wrong subpartition function
1144 --error 1054
1145 CREATE TABLE t1 (
1146 a int not null,
1147 b int not null,
1148 c int not null,
1149 primary key (a,b))
1150 partition by range (a)
1151 subpartition by hash (a+d)
1152 (partition x1 values less than (1) (subpartition x11, subpartition x12),
1153  partition x2 values less than (2) (subpartition x21, subpartition x22));
1156 # Partition by range, no partition => error
1158 --error ER_PARTITIONS_MUST_BE_DEFINED_ERROR
1159 CREATE TABLE t1 (
1160 a int not null,
1161 b int not null,
1162 c int not null,
1163 primary key(a,b))
1164 partition by range (a);
1165 select load_file('$MYSQLD_DATADIR/test/t1.par');
1168 # Partition by range, invalid field in function
1170 --error 1054
1171 CREATE TABLE t1 (
1172 a int not null,
1173 b int not null,
1174 c int not null,
1175 primary key(a,b))
1176 partition by range (a+d)
1177 partitions 2
1178 (partition x1 values less than (4) tablespace ts1,
1179  partition x2 values less than (8) tablespace ts2);
1182 # Partition by range, inconsistent partition function and constants
1184 --error 1064
1185 CREATE TABLE t1 (
1186 a int not null,
1187 b int not null,
1188 c int not null,
1189 primary key(a,b))
1190 partition by range (a)
1191 partitions 2
1192 (partition x1 values less than (4.0) tablespace ts1,
1193  partition x2 values less than (8) tablespace ts2);
1196 # Partition by range, constant partition function not allowed
1198 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1199 CREATE TABLE t1 (
1200 a int not null,
1201 b int not null,
1202 c int not null,
1203 primary key(a,b))
1204 partition by range (3+4)
1205 partitions 2
1206 (partition x1 values less than (4) tablespace ts1,
1207  partition x2 values less than (8) tablespace ts2);
1210 # Partition by range, no values less than definition
1212 --error ER_PARTITION_REQUIRES_VALUES_ERROR
1213 CREATE TABLE t1 ( 
1214 a int not null,
1215 b int not null,
1216 c int not null,
1217 primary key(a,b))
1218 partition by range (a)
1219 partitions 2
1220 (partition x1 values less than (4),
1221  partition x2); 
1224 # Partition by range, no values in definition allowed
1226 --error ER_PARTITION_WRONG_VALUES_ERROR
1227 CREATE TABLE t1 (
1228 a int not null,
1229 b int not null,
1230 c int not null,
1231 primary key(a,b))
1232 partition by range (a)
1233 partitions 2
1234 (partition x1 values in (4),
1235  partition x2);
1238 # Partition by range, values in error
1240 --error ER_PARTITION_WRONG_VALUES_ERROR
1241 CREATE TABLE t1 (
1242 a int not null,
1243 b int not null,
1244 c int not null,
1245 primary key(a,b))
1246 partition by range (a)
1247 partitions 2
1248 (partition x1 values in (4),
1249  partition x2 values less than (5));
1252 # Partition by range, missing parenthesis
1254 --error 1064
1255 CREATE TABLE t1 (
1256 a int not null,
1257 b int not null,
1258 c int not null,
1259 primary key(a,b))
1260 partition by list (a)
1261 partitions 2
1262 (partition x1 values less than 4,
1263  partition x2 values less than (5));
1266 # Partition by range, maxvalue in wrong place
1268 --error 1064
1269 CREATE TABLE t1 (
1270 a int not null,
1271 b int not null,
1272 c int not null,
1273 primary key(a,b))
1274 partition by range (a)
1275 partitions 2
1276 (partition x1 values less than maxvalue,
1277  partition x2 values less than (5));
1280 # Partition by range, maxvalue in several places
1282 --error 1064
1283 CREATE TABLE t1 (
1284 a int not null,
1285 b int not null,
1286 c int not null,
1287 primary key(a,b))
1288 partition by range (a)
1289 partitions 2
1290 (partition x1 values less than maxvalue,
1291  partition x2 values less than maxvalue);
1294 # Partition by range, not increasing ranges
1296 --error ER_RANGE_NOT_INCREASING_ERROR
1297 CREATE TABLE t1 (
1298 a int not null,
1299 b int not null,
1300 c int not null,
1301 primary key(a,b))
1302 partition by range (a)
1303 partitions 2
1304 (partition x1 values less than (4),
1305  partition x2 values less than (3));
1308 # Partition by range, wrong result type of partition function
1310 --error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
1311 CREATE TABLE t1 (
1312 a int not null,
1313 b int not null,
1314 c int not null,
1315 primary key(a,b))
1316 partition by range (sin(a))
1317 partitions 2
1318 (partition x1 values less than (4),
1319  partition x2 values less than (5));
1322 # Subpartition by hash, wrong number of subpartitions
1324 --error 1064
1325 CREATE TABLE t1 (
1326 a int not null,
1327 b int not null,
1328 c int not null,
1329 primary key (a,b))
1330 partition by list (a)
1331 subpartition by hash (a+b)
1332 subpartitions 3
1333 ( partition x1 values in (1,2,4)
1334   ( subpartition x11 nodegroup 0,
1335     subpartition x12 nodegroup 1),
1336   partition x2 values in (3,5,6)
1337   ( subpartition x21 nodegroup 0,
1338     subpartition x22 nodegroup 1)
1342 # Subpartition by hash, wrong number of subpartitions
1344 --error 1064
1345 CREATE TABLE t1 (
1346 a int not null,
1347 b int not null,
1348 c int not null,
1349 primary key (a,b))
1350 partition by list (a)
1351 subpartition by hash (a+b)
1352 ( partition x1 values in (1)
1353   ( subpartition x11 nodegroup 0,
1354     subpartition xextra,
1355     subpartition x12 nodegroup 1),
1356   partition x2 values in (2)
1357   ( subpartition x21 nodegroup 0,
1358     subpartition x22 nodegroup 1)
1362 # Subpartition by list => error
1364 --error 1064 
1365 CREATE TABLE t1 (
1366 a int not null,
1367 b int not null,
1368 c int not null,
1369 primary key (a,b))
1370 partition by key (a) 
1371 subpartition by list (a+b)
1372 ( partition x1
1373   ( subpartition x11 engine myisam,
1374     subpartition x12 engine myisam),
1375    partition x2 
1376    ( subpartition x21 engine myisam,
1377      subpartition x22 engine myisam)
1381 # Subpartition by list => error
1383 --error 1064
1384 CREATE TABLE t1 (
1385 a int not null,
1386 b int not null,
1387 c int not null,
1388 primary key (a,b))
1389 partition by key (a)
1390 subpartition by list (a+b)
1391 ( partition x1
1392   ( subpartition x11 engine myisam values in (0),
1393     subpartition x12 engine myisam values in (1)),
1394   partition x2
1395   ( subpartition x21 engine myisam values in (0),
1396     subpartition x22 engine myisam values in (1))
1400 # Partition by list, no partition => error
1402 --error ER_PARTITIONS_MUST_BE_DEFINED_ERROR
1403 CREATE TABLE t1 (
1404 a int not null,
1405 b int not null,
1406 c int not null,
1407 primary key(a,b))
1408 partition by list (a);
1411 # Partition by list, constant partition function not allowed
1413 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1414 CREATE TABLE t1 (
1415 a int not null,
1416 b int not null,
1417 c int not null,
1418 primary key(a,b))
1419 partition by list (3+4)
1420 partitions 2 
1421 (partition x1 values in (4) tablespace ts1,
1422  partition x2 values in (8) tablespace ts2);
1425 # Partition by list, invalid field in function
1427 --error 1054
1428 CREATE TABLE t1 (
1429 a int not null,
1430 b int not null,
1431 c int not null,
1432 primary key(a,b))
1433 partition by list (a+d)
1434 partitions 2
1435 (partition x1 values in (4) tablespace ts1,
1436  partition x2 values in (8) tablespace ts2);
1439 # Partition by list, no values in definition
1441 --error ER_PARTITION_REQUIRES_VALUES_ERROR
1442 CREATE TABLE t1 (
1443 a int not null,
1444 b int not null,
1445 c int not null,
1446 primary key(a,b))
1447 partition by list (a)
1448 partitions 2
1449 (partition x1 values in (4),
1450  partition x2);
1453 # Partition by list, values less than error
1455 --error ER_PARTITION_WRONG_VALUES_ERROR
1456 CREATE TABLE t1 (
1457 a int not null,
1458 b int not null,
1459 c int not null,
1460 primary key(a,b))
1461 partition by list (a)
1462 partitions 2
1463 (partition x1 values in (4),
1464  partition x2 values less than (5));
1467 # Partition by list, no values in definition
1469 --error ER_PARTITION_REQUIRES_VALUES_ERROR
1470 CREATE TABLE t1 (
1471 a int not null,
1472 b int not null,
1473 c int not null,
1474 primary key(a,b))
1475 partition by list (a)
1476 partitions 2
1477 (partition x1 values in (4,6),
1478  partition x2);
1481 # Partition by list, duplicate values
1483 --error ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR
1484 CREATE TABLE t1 (
1485 a int not null,
1486 b int not null,
1487 c int not null,
1488 primary key(a,b))
1489 partition by list (a)
1490 partitions 2
1491 (partition x1 values in (4, 12+9),
1492  partition x2 values in (3, 21));
1495 # Partition by list, wrong constant result type (not INT)
1497 --error 1064
1498 CREATE TABLE t1 (
1499 a int not null,
1500 b int not null,
1501 c int not null,
1502 primary key(a,b))
1503 partition by list (a)
1504 partitions 2
1505 (partition x1 values in (4.0, 12+8),
1506  partition x2 values in (3, 21));
1509 # Partition by list, missing parenthesis
1511 --error 1064
1512 CREATE TABLE t1 (
1513 a int not null,
1514 b int not null,
1515 c int not null,
1516 primary key(a,b))
1517 partition by list (a)
1518 partitions 2
1519 (partition x1 values in 4,
1520  partition x2 values in (5));
1523 # Bug #13439: Crash when LESS THAN (non-literal)
1525 --error 1054
1526 CREATE TABLE t1 (a int)
1527 PARTITION BY RANGE (a)
1528 (PARTITION p0 VALUES LESS THAN (x1));
1531 # No partition for the given value
1533 CREATE TABLE t1(a int)
1534   PARTITION BY RANGE (a) (PARTITION p1 VALUES LESS THAN(5));
1535 --error ER_NO_PARTITION_FOR_GIVEN_VALUE
1536 insert into t1 values (10);
1537 drop table t1;
1539 --error ER_PARTITION_CONST_DOMAIN_ERROR
1540 create table t1 (a bigint unsigned)
1541 partition by range (a)
1542 (partition p0 values less than (-1));
1544 # Bug 18198 Partitions: Verify that erroneus partition functions doesn't work
1546 -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
1547 create table t1 (v varchar(12))
1548 partition by range (ascii(v))
1549 (partition p0 values less than (10));
1550 #drop table t1;
1552 -- error 1064
1553 create table t1 (a int)
1554 partition by hash (rand(a));
1555 -- error 1064
1556 create table t1 (a int)
1557 partition by hash(CURTIME() + a);
1558 -- error 1064
1559 create table t1 (a int)
1560 partition by hash (NOW()+a);
1561 -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
1562 create table t1 (a int)
1563 partition by hash (extract(hour from convert_tz(a, '+00:00', '+00:00')));
1564 -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
1565 create table t1 (a int)
1566 partition by range (a + (select count(*) from t1))
1567 (partition p1 values less than (1));
1568 -- error ER_PARTITION_FUNCTION_IS_NOT_ALLOWED
1569 create table t1 (a char(10))
1570 partition by hash (extractvalue(a,'a'));
1572 --echo #
1573 --echo # Bug #42849: innodb crash with varying time_zone on partitioned
1574 --echo #             timestamp primary key
1575 --echo #
1577 # A correctly partitioned table to test that trying to repartition it using
1578 # timezone-dependent expression will throw an error.
1579 CREATE TABLE old (a TIMESTAMP NOT NULL PRIMARY KEY)
1580 PARTITION BY RANGE (UNIX_TIMESTAMP(a)) (
1581 PARTITION p VALUES LESS THAN (1219089600),
1582 PARTITION pmax VALUES LESS THAN MAXVALUE);
1584 # Check that allowed arithmetic/math functions involving TIMESTAMP values result
1585 # in ER_PARTITION_FUNC_NOT_ALLOWED_ERROR when used as a partitioning function
1587 --error ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
1588 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1589 PARTITION BY RANGE (a) (
1590 PARTITION p VALUES LESS THAN (20080819),
1591 PARTITION pmax VALUES LESS THAN MAXVALUE);
1593 --error ER_PARTITION_FUNC_NOT_ALLOWED_ERROR
1594 ALTER TABLE old
1595 PARTITION BY RANGE (a) (
1596 PARTITION p VALUES LESS THAN (20080819),
1597 PARTITION pmax VALUES LESS THAN MAXVALUE);
1599 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1600 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1601 PARTITION BY RANGE (a+0) (
1602 PARTITION p VALUES LESS THAN (20080819),
1603 PARTITION pmax VALUES LESS THAN MAXVALUE);
1605 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1606 ALTER TABLE old
1607 PARTITION BY RANGE (a+0) (
1608 PARTITION p VALUES LESS THAN (20080819),
1609 PARTITION pmax VALUES LESS THAN MAXVALUE);
1611 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1612 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1613 PARTITION BY RANGE (a % 2) (
1614 PARTITION p VALUES LESS THAN (20080819),
1615 PARTITION pmax VALUES LESS THAN MAXVALUE);
1617 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1618 ALTER TABLE old
1619 PARTITION BY RANGE (a % 2) (
1620 PARTITION p VALUES LESS THAN (20080819),
1621 PARTITION pmax VALUES LESS THAN MAXVALUE);
1623 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1624 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1625 PARTITION BY RANGE (ABS(a)) (
1626 PARTITION p VALUES LESS THAN (20080819),
1627 PARTITION pmax VALUES LESS THAN MAXVALUE);
1629 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1630 ALTER TABLE old
1631 PARTITION BY RANGE (ABS(a)) (
1632 PARTITION p VALUES LESS THAN (20080819),
1633 PARTITION pmax VALUES LESS THAN MAXVALUE);
1635 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1636 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1637 PARTITION BY RANGE (CEILING(a)) (
1638 PARTITION p VALUES LESS THAN (20080819),
1639 PARTITION pmax VALUES LESS THAN MAXVALUE);
1641 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1642 ALTER TABLE old
1643 PARTITION BY RANGE (CEILING(a)) (
1644 PARTITION p VALUES LESS THAN (20080819),
1645 PARTITION pmax VALUES LESS THAN MAXVALUE);
1647 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1648 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1649 PARTITION BY RANGE (FLOOR(a)) (
1650 PARTITION p VALUES LESS THAN (20080819),
1651 PARTITION pmax VALUES LESS THAN MAXVALUE);
1653 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1654 ALTER TABLE old
1655 PARTITION BY RANGE (FLOOR(a)) (
1656 PARTITION p VALUES LESS THAN (20080819),
1657 PARTITION pmax VALUES LESS THAN MAXVALUE);
1659 # Check that allowed date/time functions involving TIMESTAMP values result
1660 # in ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR when used as a partitioning function
1662 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1663 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1664 PARTITION BY RANGE (TO_DAYS(a)) (
1665 PARTITION p VALUES LESS THAN (733638),
1666 PARTITION pmax VALUES LESS THAN MAXVALUE);
1668 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1669 ALTER TABLE old
1670 PARTITION BY RANGE (TO_DAYS(a)) (
1671 PARTITION p VALUES LESS THAN (733638),
1672 PARTITION pmax VALUES LESS THAN MAXVALUE);
1674 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1675 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1676 PARTITION BY RANGE (DAYOFYEAR(a)) (
1677 PARTITION p VALUES LESS THAN (231),
1678 PARTITION pmax VALUES LESS THAN MAXVALUE);
1680 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1681 ALTER TABLE old
1682 PARTITION BY RANGE (DAYOFYEAR(a)) (
1683 PARTITION p VALUES LESS THAN (231),
1684 PARTITION pmax VALUES LESS THAN MAXVALUE);
1686 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1687 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1688 PARTITION BY RANGE (DAYOFMONTH(a)) (
1689 PARTITION p VALUES LESS THAN (19),
1690 PARTITION pmax VALUES LESS THAN MAXVALUE);
1692 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1693 ALTER TABLE old
1694 PARTITION BY RANGE (DAYOFMONTH(a)) (
1695 PARTITION p VALUES LESS THAN (19),
1696 PARTITION pmax VALUES LESS THAN MAXVALUE);
1698 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1699 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1700 PARTITION BY RANGE (DAYOFWEEK(a)) (
1701 PARTITION p VALUES LESS THAN (3),
1702 PARTITION pmax VALUES LESS THAN MAXVALUE);
1704 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1705 ALTER TABLE old
1706 PARTITION BY RANGE (DAYOFWEEK(a)) (
1707 PARTITION p VALUES LESS THAN (3),
1708 PARTITION pmax VALUES LESS THAN MAXVALUE);
1710 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1711 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1712 PARTITION BY RANGE (MONTH(a)) (
1713 PARTITION p VALUES LESS THAN (8),
1714 PARTITION pmax VALUES LESS THAN MAXVALUE);
1716 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1717 ALTER TABLE old
1718 PARTITION BY RANGE (MONTH(a)) (
1719 PARTITION p VALUES LESS THAN (8),
1720 PARTITION pmax VALUES LESS THAN MAXVALUE);
1722 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1723 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1724 PARTITION BY RANGE (HOUR(a)) (
1725 PARTITION p VALUES LESS THAN (17),
1726 PARTITION pmax VALUES LESS THAN MAXVALUE);
1728 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1729 ALTER TABLE old
1730 PARTITION BY RANGE (HOUR(a)) (
1731 PARTITION p VALUES LESS THAN (17),
1732 PARTITION pmax VALUES LESS THAN MAXVALUE);
1734 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1735 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1736 PARTITION BY RANGE (MINUTE(a)) (
1737 PARTITION p VALUES LESS THAN (55),
1738 PARTITION pmax VALUES LESS THAN MAXVALUE);
1740 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1741 ALTER TABLE old
1742 PARTITION BY RANGE (MINUTE(a)) (
1743 PARTITION p VALUES LESS THAN (55),
1744 PARTITION pmax VALUES LESS THAN MAXVALUE);
1746 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1747 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1748 PARTITION BY RANGE (QUARTER(a)) (
1749 PARTITION p VALUES LESS THAN (3),
1750 PARTITION pmax VALUES LESS THAN MAXVALUE);
1752 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1753 ALTER TABLE old
1754 PARTITION BY RANGE (QUARTER(a)) (
1755 PARTITION p VALUES LESS THAN (3),
1756 PARTITION pmax VALUES LESS THAN MAXVALUE);
1758 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1759 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1760 PARTITION BY RANGE (SECOND(a)) (
1761 PARTITION p VALUES LESS THAN (7),
1762 PARTITION pmax VALUES LESS THAN MAXVALUE);
1764 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1765 ALTER TABLE old
1766 PARTITION BY RANGE (SECOND(a)) (
1767 PARTITION p VALUES LESS THAN (7),
1768 PARTITION pmax VALUES LESS THAN MAXVALUE);
1770 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1771 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1772 PARTITION BY RANGE (YEARWEEK(a)) (
1773 PARTITION p VALUES LESS THAN (200833),
1774 PARTITION pmax VALUES LESS THAN MAXVALUE);
1776 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1777 ALTER TABLE old
1778 PARTITION BY RANGE (YEARWEEK(a)) (
1779 PARTITION p VALUES LESS THAN (200833),
1780 PARTITION pmax VALUES LESS THAN MAXVALUE);
1782 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1783 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1784 PARTITION BY RANGE (YEAR(a)) (
1785 PARTITION p VALUES LESS THAN (2008),
1786 PARTITION pmax VALUES LESS THAN MAXVALUE);
1788 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1789 ALTER TABLE old
1790 PARTITION BY RANGE (YEAR(a)) (
1791 PARTITION p VALUES LESS THAN (2008),
1792 PARTITION pmax VALUES LESS THAN MAXVALUE);
1794 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1795 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1796 PARTITION BY RANGE (WEEKDAY(a)) (
1797 PARTITION p VALUES LESS THAN (3),
1798 PARTITION pmax VALUES LESS THAN MAXVALUE);
1800 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1801 ALTER TABLE old
1802 PARTITION BY RANGE (WEEKDAY(a)) (
1803 PARTITION p VALUES LESS THAN (3),
1804 PARTITION pmax VALUES LESS THAN MAXVALUE);
1806 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1807 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1808 PARTITION BY RANGE (TIME_TO_SEC(a)) (
1809 PARTITION p VALUES LESS THAN (64507),
1810 PARTITION pmax VALUES LESS THAN MAXVALUE);
1812 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1813 ALTER TABLE old
1814 PARTITION BY RANGE (TIME_TO_SEC(a)) (
1815 PARTITION p VALUES LESS THAN (64507),
1816 PARTITION pmax VALUES LESS THAN MAXVALUE);
1818 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1819 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1820 PARTITION BY RANGE (EXTRACT(DAY FROM a)) (
1821 PARTITION p VALUES LESS THAN (18),
1822 PARTITION pmax VALUES LESS THAN MAXVALUE);
1824 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1825 ALTER TABLE old
1826 PARTITION BY RANGE (EXTRACT(DAY FROM a)) (
1827 PARTITION p VALUES LESS THAN (18),
1828 PARTITION pmax VALUES LESS THAN MAXVALUE);
1830 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1831 CREATE TABLE new (a TIMESTAMP NOT NULL, b TIMESTAMP NOT NULL, PRIMARY KEY(a,b))
1832 PARTITION BY RANGE (DATEDIFF(a, a)) (
1833 PARTITION p VALUES LESS THAN (18),
1834 PARTITION pmax VALUES LESS THAN MAXVALUE);
1836 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1837 ALTER TABLE old
1838 PARTITION BY RANGE (DATEDIFF(a, a)) (
1839 PARTITION p VALUES LESS THAN (18),
1840 PARTITION pmax VALUES LESS THAN MAXVALUE);
1842 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1843 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1844 PARTITION BY RANGE (YEAR(a + 0)) (
1845 PARTITION p VALUES LESS THAN (2008),
1846 PARTITION pmax VALUES LESS THAN MAXVALUE);
1848 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1849 ALTER TABLE old
1850 PARTITION BY RANGE (YEAR(a + 0)) (
1851 PARTITION p VALUES LESS THAN (2008),
1852 PARTITION pmax VALUES LESS THAN MAXVALUE);
1854 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1855 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1856 PARTITION BY RANGE (TO_DAYS(a + '2008-01-01')) (
1857 PARTITION p VALUES LESS THAN (733638),
1858 PARTITION pmax VALUES LESS THAN MAXVALUE);
1860 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1861 ALTER TABLE old
1862 PARTITION BY RANGE (TO_DAYS(a + '2008-01-01')) (
1863 PARTITION p VALUES LESS THAN (733638),
1864 PARTITION pmax VALUES LESS THAN MAXVALUE);
1866 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1867 CREATE TABLE new (a TIMESTAMP NOT NULL PRIMARY KEY)
1868 PARTITION BY RANGE (YEAR(a + '2008-01-01')) (
1869 PARTITION p VALUES LESS THAN (2008),
1870 PARTITION pmax VALUES LESS THAN MAXVALUE);
1872 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1873 ALTER TABLE old
1874 PARTITION BY RANGE (YEAR(a + '2008-01-01')) (
1875 PARTITION p VALUES LESS THAN (2008),
1876 PARTITION pmax VALUES LESS THAN MAXVALUE);
1878 ALTER TABLE old ADD COLUMN b DATE;
1880 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1881 CREATE TABLE new (a TIMESTAMP, b DATE)
1882 PARTITION BY RANGE (YEAR(a + b)) (
1883 PARTITION p VALUES LESS THAN (2008),
1884 PARTITION pmax VALUES LESS THAN MAXVALUE);
1886 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1887 ALTER TABLE old
1888 PARTITION BY RANGE (YEAR(a + b)) (
1889 PARTITION p VALUES LESS THAN (2008),
1890 PARTITION pmax VALUES LESS THAN MAXVALUE);
1892 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1893 CREATE TABLE new (a TIMESTAMP, b DATE)
1894 PARTITION BY RANGE (TO_DAYS(a + b)) (
1895 PARTITION p VALUES LESS THAN (733638),
1896 PARTITION pmax VALUES LESS THAN MAXVALUE);
1898 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1899 ALTER TABLE old
1900 PARTITION BY RANGE (TO_DAYS(a + b)) (
1901 PARTITION p VALUES LESS THAN (733638),
1902 PARTITION pmax VALUES LESS THAN MAXVALUE);
1904 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1905 CREATE TABLE new (a TIMESTAMP, b date)
1906 PARTITION BY RANGE (UNIX_TIMESTAMP(a + b)) (
1907 PARTITION p VALUES LESS THAN (1219089600),
1908 PARTITION pmax VALUES LESS THAN MAXVALUE);
1910 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1911 ALTER TABLE old
1912 PARTITION BY RANGE (UNIX_TIMESTAMP(a + b)) (
1913 PARTITION p VALUES LESS THAN (1219089600),
1914 PARTITION pmax VALUES LESS THAN MAXVALUE);
1916 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1917 CREATE TABLE new (a TIMESTAMP, b TIMESTAMP)
1918 PARTITION BY RANGE (UNIX_TIMESTAMP(a + b)) (
1919 PARTITION p VALUES LESS THAN (1219089600),
1920 PARTITION pmax VALUES LESS THAN MAXVALUE);
1922 ALTER TABLE old MODIFY b TIMESTAMP;
1924 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1925 ALTER TABLE old
1926 PARTITION BY RANGE (UNIX_TIMESTAMP(a + b)) (
1927 PARTITION p VALUES LESS THAN (1219089600),
1928 PARTITION pmax VALUES LESS THAN MAXVALUE);
1930 DROP TABLE old;
1932 --echo #
1933 --echo # Bug #56709: Memory leaks at running the 5.1 test suite
1934 --echo # 
1936 CREATE TABLE t1 (a TIMESTAMP NOT NULL PRIMARY KEY);
1938 --error ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR
1939 ALTER TABLE t1
1940 PARTITION BY RANGE (EXTRACT(DAY FROM a)) (
1941 PARTITION p VALUES LESS THAN (18),
1942 PARTITION pmax VALUES LESS THAN MAXVALUE);
1944 DROP TABLE t1;
1946 --echo End of 5.1 tests