~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysql-test/suite/parts/r/partition_syntax_innodb.result

  • Committer: brian
  • Date: 2008-06-29 12:50:19 UTC
  • mfrom: (12.1.4 drizzle)
  • Revision ID: brian@localhost.localdomain-20080629125019-qxk9qma8esphwwus
Committing merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
SET @max_row = 20;
2
 
SET @@session.storage_engine = 'InnoDB';
3
 
 
4
 
#------------------------------------------------------------------------
5
 
#  0. Setting of auxiliary variables + Creation of an auxiliary tables
6
 
#     needed in many testcases
7
 
#------------------------------------------------------------------------
8
 
SELECT @max_row DIV 2 INTO @max_row_div2;
9
 
SELECT @max_row DIV 3 INTO @max_row_div3;
10
 
SELECT @max_row DIV 4 INTO @max_row_div4;
11
 
SET @max_int_4 = 2147483647;
12
 
DROP TABLE IF EXISTS t0_template;
13
 
CREATE TABLE t0_template (
14
 
f_int1 INTEGER,
15
 
f_int2 INTEGER,
16
 
f_char1 CHAR(20),
17
 
f_char2 CHAR(20),
18
 
f_charbig VARCHAR(1000) ,
19
 
PRIMARY KEY(f_int1))
20
 
ENGINE = MEMORY;
21
 
#     Logging of <max_row> INSERTs into t0_template suppressed
22
 
DROP TABLE IF EXISTS t0_definition;
23
 
CREATE TABLE t0_definition (
24
 
state CHAR(3),
25
 
create_command VARBINARY(5000),
26
 
file_list      VARBINARY(10000),
27
 
PRIMARY KEY (state)
28
 
) ENGINE = MEMORY;
29
 
DROP TABLE IF EXISTS t0_aux;
30
 
CREATE TABLE t0_aux ( f_int1 INTEGER,
31
 
f_int2 INTEGER,
32
 
f_char1 CHAR(20),
33
 
f_char2 CHAR(20),
34
 
f_charbig VARCHAR(1000) )
35
 
ENGINE = MEMORY;
36
 
SET AUTOCOMMIT= 1;
37
 
SET @@session.sql_mode= '';
38
 
# End of basic preparations needed for all tests
39
 
#-----------------------------------------------
40
 
 
41
 
#========================================================================
42
 
#  1.    Any PRIMARY KEYs or UNIQUE INDEXes must contain the columns used
43
 
#        within the partitioning functions
44
 
#========================================================================
45
 
DROP TABLE IF EXISTS t1;
46
 
#------------------------------------------------------------------------
47
 
#  1.1 column of partitioning function not included in PRIMARY KEY
48
 
#               PARTITION BY HASH/KEY/LIST/RANGE
49
 
#------------------------------------------------------------------------
50
 
CREATE TABLE t1 (
51
 
f_int1 INTEGER,
52
 
f_int2 INTEGER,
53
 
f_char1 CHAR(20),
54
 
f_char2 CHAR(20),
55
 
f_charbig VARCHAR(1000),
56
 
PRIMARY KEY (f_int2)
57
 
)
58
 
PARTITION BY HASH(f_int1) PARTITIONS 2;
59
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
60
 
CREATE TABLE t1 (
61
 
f_int1 INTEGER,
62
 
f_int2 INTEGER,
63
 
f_char1 CHAR(20),
64
 
f_char2 CHAR(20),
65
 
f_charbig VARCHAR(1000),
66
 
PRIMARY KEY (f_int2)
67
 
)
68
 
PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2;
69
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
70
 
CREATE TABLE t1 (
71
 
f_int1 INTEGER,
72
 
f_int2 INTEGER,
73
 
f_char1 CHAR(20),
74
 
f_char2 CHAR(20),
75
 
f_charbig VARCHAR(1000),
76
 
PRIMARY KEY (f_int2)
77
 
)
78
 
PARTITION BY KEY(f_int1) PARTITIONS 2;
79
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
80
 
CREATE TABLE t1 (
81
 
f_int1 INTEGER,
82
 
f_int2 INTEGER,
83
 
f_char1 CHAR(20),
84
 
f_char2 CHAR(20),
85
 
f_charbig VARCHAR(1000),
86
 
PRIMARY KEY (f_int2)
87
 
)
88
 
PARTITION BY KEY(f_int1,f_int2) PARTITIONS 2;
89
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
90
 
CREATE TABLE t1 (
91
 
f_int1 INTEGER,
92
 
f_int2 INTEGER,
93
 
f_char1 CHAR(20),
94
 
f_char2 CHAR(20),
95
 
f_charbig VARCHAR(1000),
96
 
PRIMARY KEY (f_int2)
97
 
)
98
 
PARTITION BY LIST(f_int1)
99
 
(PARTITION part1 VALUES IN (1));
100
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
101
 
CREATE TABLE t1 (
102
 
f_int1 INTEGER,
103
 
f_int2 INTEGER,
104
 
f_char1 CHAR(20),
105
 
f_char2 CHAR(20),
106
 
f_charbig VARCHAR(1000),
107
 
PRIMARY KEY (f_int2)
108
 
)
109
 
PARTITION BY LIST(f_int1 + f_int2)
110
 
(PARTITION part1 VALUES IN (1));
111
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
112
 
CREATE TABLE t1 (
113
 
f_int1 INTEGER,
114
 
f_int2 INTEGER,
115
 
f_char1 CHAR(20),
116
 
f_char2 CHAR(20),
117
 
f_charbig VARCHAR(1000),
118
 
PRIMARY KEY (f_int2)
119
 
)
120
 
PARTITION BY RANGE(f_int1)
121
 
(PARTITION part1 VALUES LESS THAN (1));
122
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
123
 
CREATE TABLE t1 (
124
 
f_int1 INTEGER,
125
 
f_int2 INTEGER,
126
 
f_char1 CHAR(20),
127
 
f_char2 CHAR(20),
128
 
f_charbig VARCHAR(1000),
129
 
PRIMARY KEY (f_int2)
130
 
)
131
 
PARTITION BY RANGE(f_int1 + f_int2)
132
 
(PARTITION part1 VALUES LESS THAN (1));
133
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
134
 
#------------------------------------------------------------------------
135
 
#  1.2 column of partitioning function not included in UNIQUE INDEX
136
 
#               PARTITION BY HASH/KEY/LIST/RANGE
137
 
#      Variant a) Without additional PRIMARY KEY        
138
 
#      Variant b) With correct additional PRIMARY KEY        
139
 
#      Variant 1) one column in partitioning function
140
 
#      Variant 2) two columns in partitioning function
141
 
#------------------------------------------------------------------------
142
 
CREATE TABLE t1 (
143
 
f_int1 INTEGER,
144
 
f_int2 INTEGER,
145
 
f_char1 CHAR(20),
146
 
f_char2 CHAR(20),
147
 
f_charbig VARCHAR(1000),
148
 
UNIQUE INDEX (f_int2)
149
 
)
150
 
PARTITION BY HASH(f_int1) PARTITIONS 2;
151
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
152
 
CREATE TABLE t1 (
153
 
f_int1 INTEGER,
154
 
f_int2 INTEGER,
155
 
f_char1 CHAR(20),
156
 
f_char2 CHAR(20),
157
 
f_charbig VARCHAR(1000),
158
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
159
 
)
160
 
PARTITION BY HASH(f_int1) PARTITIONS 2;
161
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
162
 
CREATE TABLE t1 (
163
 
f_int1 INTEGER,
164
 
f_int2 INTEGER,
165
 
f_char1 CHAR(20),
166
 
f_char2 CHAR(20),
167
 
f_charbig VARCHAR(1000),
168
 
UNIQUE INDEX (f_int2)
169
 
)
170
 
PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2;
171
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
172
 
CREATE TABLE t1 (
173
 
f_int1 INTEGER,
174
 
f_int2 INTEGER,
175
 
f_char1 CHAR(20),
176
 
f_char2 CHAR(20),
177
 
f_charbig VARCHAR(1000),
178
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
179
 
)
180
 
PARTITION BY HASH(f_int1 + f_int2) PARTITIONS 2;
181
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
182
 
CREATE TABLE t1 (
183
 
f_int1 INTEGER,
184
 
f_int2 INTEGER,
185
 
f_char1 CHAR(20),
186
 
f_char2 CHAR(20),
187
 
f_charbig VARCHAR(1000),
188
 
UNIQUE INDEX (f_int2)
189
 
)
190
 
PARTITION BY KEY(f_int1) PARTITIONS 2;
191
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
192
 
CREATE TABLE t1 (
193
 
f_int1 INTEGER,
194
 
f_int2 INTEGER,
195
 
f_char1 CHAR(20),
196
 
f_char2 CHAR(20),
197
 
f_charbig VARCHAR(1000),
198
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
199
 
)
200
 
PARTITION BY KEY(f_int1) PARTITIONS 2;
201
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
202
 
CREATE TABLE t1 (
203
 
f_int1 INTEGER,
204
 
f_int2 INTEGER,
205
 
f_char1 CHAR(20),
206
 
f_char2 CHAR(20),
207
 
f_charbig VARCHAR(1000),
208
 
UNIQUE INDEX (f_int2)
209
 
)
210
 
PARTITION BY KEY(f_int1,f_int2) PARTITIONS 2;
211
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
212
 
CREATE TABLE t1 (
213
 
f_int1 INTEGER,
214
 
f_int2 INTEGER,
215
 
f_char1 CHAR(20),
216
 
f_char2 CHAR(20),
217
 
f_charbig VARCHAR(1000),
218
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
219
 
)
220
 
PARTITION BY KEY(f_int1,f_int2) PARTITIONS 2;
221
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
222
 
CREATE TABLE t1 (
223
 
f_int1 INTEGER,
224
 
f_int2 INTEGER,
225
 
f_char1 CHAR(20),
226
 
f_char2 CHAR(20),
227
 
f_charbig VARCHAR(1000),
228
 
UNIQUE INDEX (f_int2)
229
 
)
230
 
PARTITION BY LIST(MOD(f_int1,3))
231
 
(PARTITION partN VALUES IN (NULL),
232
 
PARTITION part0 VALUES IN (0),
233
 
PARTITION part1 VALUES IN (1),
234
 
PARTITION part2 VALUES IN (2));
235
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
236
 
CREATE TABLE t1 (
237
 
f_int1 INTEGER,
238
 
f_int2 INTEGER,
239
 
f_char1 CHAR(20),
240
 
f_char2 CHAR(20),
241
 
f_charbig VARCHAR(1000),
242
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
243
 
)
244
 
PARTITION BY LIST(MOD(f_int1,3))
245
 
(PARTITION partN VALUES IN (NULL),
246
 
PARTITION part0 VALUES IN (0),
247
 
PARTITION part1 VALUES IN (1),
248
 
PARTITION part2 VALUES IN (2));
249
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
250
 
CREATE TABLE t1 (
251
 
f_int1 INTEGER,
252
 
f_int2 INTEGER,
253
 
f_char1 CHAR(20),
254
 
f_char2 CHAR(20),
255
 
f_charbig VARCHAR(1000),
256
 
UNIQUE INDEX (f_int2)
257
 
)
258
 
PARTITION BY LIST(MOD(f_int1 + f_int2,3))
259
 
(PARTITION partN VALUES IN (NULL),
260
 
PARTITION part0 VALUES IN (0),
261
 
PARTITION part1 VALUES IN (1),
262
 
PARTITION part2 VALUES IN (2));
263
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
264
 
CREATE TABLE t1 (
265
 
f_int1 INTEGER,
266
 
f_int2 INTEGER,
267
 
f_char1 CHAR(20),
268
 
f_char2 CHAR(20),
269
 
f_charbig VARCHAR(1000),
270
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
271
 
)
272
 
PARTITION BY LIST(MOD(f_int1 + f_int2,3))
273
 
(PARTITION partN VALUES IN (NULL),
274
 
PARTITION part0 VALUES IN (0),
275
 
PARTITION part1 VALUES IN (1),
276
 
PARTITION part2 VALUES IN (2));
277
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
278
 
CREATE TABLE t1 (
279
 
f_int1 INTEGER,
280
 
f_int2 INTEGER,
281
 
f_char1 CHAR(20),
282
 
f_char2 CHAR(20),
283
 
f_charbig VARCHAR(1000),
284
 
UNIQUE INDEX (f_int2)
285
 
)
286
 
PARTITION BY RANGE(f_int1)
287
 
(PARTITION part1 VALUES LESS THAN (1),
288
 
PARTITION part2 VALUES LESS THAN (2147483646));
289
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
290
 
CREATE TABLE t1 (
291
 
f_int1 INTEGER,
292
 
f_int2 INTEGER,
293
 
f_char1 CHAR(20),
294
 
f_char2 CHAR(20),
295
 
f_charbig VARCHAR(1000),
296
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
297
 
)
298
 
PARTITION BY RANGE(f_int1)
299
 
(PARTITION part1 VALUES LESS THAN (1),
300
 
PARTITION part2 VALUES LESS THAN (2147483646));
301
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
302
 
CREATE TABLE t1 (
303
 
f_int1 INTEGER,
304
 
f_int2 INTEGER,
305
 
f_char1 CHAR(20),
306
 
f_char2 CHAR(20),
307
 
f_charbig VARCHAR(1000),
308
 
UNIQUE INDEX (f_int2)
309
 
)
310
 
PARTITION BY RANGE(f_int1 + f_int2)
311
 
(PARTITION part1 VALUES LESS THAN (1),
312
 
PARTITION part2 VALUES LESS THAN (2147483646));
313
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
314
 
CREATE TABLE t1 (
315
 
f_int1 INTEGER,
316
 
f_int2 INTEGER,
317
 
f_char1 CHAR(20),
318
 
f_char2 CHAR(20),
319
 
f_charbig VARCHAR(1000),
320
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
321
 
)
322
 
PARTITION BY RANGE(f_int1 + f_int2)
323
 
(PARTITION part1 VALUES LESS THAN (1),
324
 
PARTITION part2 VALUES LESS THAN (2147483646));
325
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
326
 
#------------------------------------------------------------------------
327
 
#  1.3 column of subpartitioning function not included in PRIMARY KEY
328
 
#               PARTITION BY RANGE/LIST -- SUBPARTITION BY HASH/KEY
329
 
#------------------------------------------------------------------------
330
 
CREATE TABLE t1 (
331
 
f_int1 INTEGER,
332
 
f_int2 INTEGER,
333
 
f_char1 CHAR(20),
334
 
f_char2 CHAR(20),
335
 
f_charbig VARCHAR(1000),
336
 
PRIMARY KEY (f_int2)
337
 
)
338
 
PARTITION BY RANGE(f_int2) SUBPARTITION BY HASH(f_int1)
339
 
(PARTITION part1 VALUES LESS THAN (1)
340
 
(SUBPARTITION subpart1));
341
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
342
 
CREATE TABLE t1 (
343
 
f_int1 INTEGER,
344
 
f_int2 INTEGER,
345
 
f_char1 CHAR(20),
346
 
f_char2 CHAR(20),
347
 
f_charbig VARCHAR(1000),
348
 
PRIMARY KEY (f_int2)
349
 
)
350
 
PARTITION BY RANGE(f_int2) SUBPARTITION BY KEY(f_int1)
351
 
(PARTITION part1 VALUES LESS THAN (1)
352
 
(SUBPARTITION subpart1));
353
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
354
 
CREATE TABLE t1 (
355
 
f_int1 INTEGER,
356
 
f_int2 INTEGER,
357
 
f_char1 CHAR(20),
358
 
f_char2 CHAR(20),
359
 
f_charbig VARCHAR(1000),
360
 
PRIMARY KEY (f_int2)
361
 
)
362
 
PARTITION BY LIST(f_int2) SUBPARTITION BY HASH(f_int1)
363
 
(PARTITION part1 VALUES IN (1)
364
 
(SUBPARTITION subpart1));
365
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
366
 
CREATE TABLE t1 (
367
 
f_int1 INTEGER,
368
 
f_int2 INTEGER,
369
 
f_char1 CHAR(20),
370
 
f_char2 CHAR(20),
371
 
f_charbig VARCHAR(1000),
372
 
PRIMARY KEY (f_int2)
373
 
)
374
 
PARTITION BY LIST(f_int2) SUBPARTITION BY KEY(f_int1)
375
 
(PARTITION part1 VALUES IN (1)
376
 
(SUBPARTITION subpart1));
377
 
ERROR HY000: A PRIMARY KEY must include all columns in the table's partitioning function
378
 
#------------------------------------------------------------------------
379
 
#  1.4 column of subpartitioning function not included in UNIQUE INDEX
380
 
#               PARTITION BY RANGE/LIST -- SUBPARTITION BY HASH/KEY
381
 
#      Variant a) Without additional PRIMARY KEY        
382
 
#      Variant b) With correct additional PRIMARY KEY        
383
 
#------------------------------------------------------------------------
384
 
CREATE TABLE t1 (
385
 
f_int1 INTEGER,
386
 
f_int2 INTEGER,
387
 
f_char1 CHAR(20),
388
 
f_char2 CHAR(20),
389
 
f_charbig VARCHAR(1000),
390
 
UNIQUE INDEX (f_int2)
391
 
)
392
 
PARTITION BY RANGE(f_int2)
393
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 3
394
 
(PARTITION part1 VALUES LESS THAN (1),
395
 
PARTITION part2 VALUES LESS THAN (2147483646));
396
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
397
 
CREATE TABLE t1 (
398
 
f_int1 INTEGER,
399
 
f_int2 INTEGER,
400
 
f_char1 CHAR(20),
401
 
f_char2 CHAR(20),
402
 
f_charbig VARCHAR(1000),
403
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
404
 
)
405
 
PARTITION BY RANGE(f_int2)
406
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 3
407
 
(PARTITION part1 VALUES LESS THAN (1),
408
 
PARTITION part2 VALUES LESS THAN (2147483646));
409
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
410
 
CREATE TABLE t1 (
411
 
f_int1 INTEGER,
412
 
f_int2 INTEGER,
413
 
f_char1 CHAR(20),
414
 
f_char2 CHAR(20),
415
 
f_charbig VARCHAR(1000),
416
 
UNIQUE INDEX (f_int2)
417
 
)
418
 
PARTITION BY RANGE(f_int2)
419
 
SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
420
 
(PARTITION part1 VALUES LESS THAN (1),
421
 
PARTITION part2 VALUES LESS THAN (2147483646));
422
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
423
 
CREATE TABLE t1 (
424
 
f_int1 INTEGER,
425
 
f_int2 INTEGER,
426
 
f_char1 CHAR(20),
427
 
f_char2 CHAR(20),
428
 
f_charbig VARCHAR(1000),
429
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
430
 
)
431
 
PARTITION BY RANGE(f_int2)
432
 
SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 3
433
 
(PARTITION part1 VALUES LESS THAN (1),
434
 
PARTITION part2 VALUES LESS THAN (2147483646));
435
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
436
 
CREATE TABLE t1 (
437
 
f_int1 INTEGER,
438
 
f_int2 INTEGER,
439
 
f_char1 CHAR(20),
440
 
f_char2 CHAR(20),
441
 
f_charbig VARCHAR(1000),
442
 
UNIQUE INDEX (f_int2)
443
 
)
444
 
PARTITION BY LIST(MOD(f_int2,3))
445
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
446
 
(PARTITION partN VALUES IN (NULL),
447
 
PARTITION part0 VALUES IN (0),
448
 
PARTITION part1 VALUES IN (1),
449
 
PARTITION part2 VALUES IN (2));
450
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
451
 
CREATE TABLE t1 (
452
 
f_int1 INTEGER,
453
 
f_int2 INTEGER,
454
 
f_char1 CHAR(20),
455
 
f_char2 CHAR(20),
456
 
f_charbig VARCHAR(1000),
457
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
458
 
)
459
 
PARTITION BY LIST(MOD(f_int2,3))
460
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
461
 
(PARTITION partN VALUES IN (NULL),
462
 
PARTITION part0 VALUES IN (0),
463
 
PARTITION part1 VALUES IN (1),
464
 
PARTITION part2 VALUES IN (2));
465
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
466
 
CREATE TABLE t1 (
467
 
f_int1 INTEGER,
468
 
f_int2 INTEGER,
469
 
f_char1 CHAR(20),
470
 
f_char2 CHAR(20),
471
 
f_charbig VARCHAR(1000),
472
 
UNIQUE INDEX (f_int2)
473
 
)
474
 
PARTITION BY LIST(MOD(f_int2,3))
475
 
SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 2
476
 
(PARTITION partN VALUES IN (NULL),
477
 
PARTITION part0 VALUES IN (0),
478
 
PARTITION part1 VALUES IN (1),
479
 
PARTITION part2 VALUES IN (2));
480
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
481
 
CREATE TABLE t1 (
482
 
f_int1 INTEGER,
483
 
f_int2 INTEGER,
484
 
f_char1 CHAR(20),
485
 
f_char2 CHAR(20),
486
 
f_charbig VARCHAR(1000),
487
 
PRIMARY KEY(f_int1,f_int2), UNIQUE INDEX (f_int2)
488
 
)
489
 
PARTITION BY LIST(MOD(f_int2,3))
490
 
SUBPARTITION BY KEY(f_int1) SUBPARTITIONS 2
491
 
(PARTITION partN VALUES IN (NULL),
492
 
PARTITION part0 VALUES IN (0),
493
 
PARTITION part1 VALUES IN (1),
494
 
PARTITION part2 VALUES IN (2));
495
 
ERROR HY000: A UNIQUE INDEX must include all columns in the table's partitioning function
496
 
 
497
 
#========================================================================
498
 
#  2   Some properties around subpartitioning
499
 
#========================================================================
500
 
#------------------------------------------------------------------------
501
 
#  2.1 Subpartioned table without subpartitioning rule must be rejected
502
 
#------------------------------------------------------------------------
503
 
DROP TABLE IF EXISTS t1;
504
 
CREATE TABLE t1 (
505
 
f_int1 INTEGER,
506
 
f_int2 INTEGER,
507
 
f_char1 CHAR(20),
508
 
f_char2 CHAR(20),
509
 
f_charbig VARCHAR(1000)
510
 
)
511
 
PARTITION BY RANGE(f_int1)
512
 
( PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11));
513
 
ERROR HY000: It is only possible to mix RANGE/LIST partitioning with HASH/KEY partitioning for subpartitioning
514
 
#------------------------------------------------------------------------
515
 
#  2.2 Every partition must have the same number of subpartitions.
516
 
#      This is a limitation of MySQL 5.1, which could be removed in
517
 
#      later releases.
518
 
#------------------------------------------------------------------------
519
 
CREATE TABLE t1 (
520
 
f_int1 INTEGER,
521
 
f_int2 INTEGER,
522
 
f_char1 CHAR(20),
523
 
f_char2 CHAR(20),
524
 
f_charbig VARCHAR(1000),
525
 
PRIMARY KEY (f_int1)
526
 
)
527
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY KEY(f_int1)
528
 
(
529
 
PARTITION part1 VALUES LESS THAN (0)
530
 
(SUBPARTITION subpart1),
531
 
PARTITION part2 VALUES LESS THAN (5)
532
 
(SUBPARTITION subpart1, SUBPARTITION subpart2));
533
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '))' at line 14
534
 
 
535
 
#========================================================================
536
 
#  3   VALUES clauses
537
 
#========================================================================
538
 
#------------------------------------------------------------------------
539
 
#  3.1 The constants in VALUES IN clauses must differ
540
 
#------------------------------------------------------------------------
541
 
CREATE TABLE t1 (
542
 
f_int1 INTEGER,
543
 
f_int2 INTEGER,
544
 
f_char1 CHAR(20),
545
 
f_char2 CHAR(20),
546
 
f_charbig VARCHAR(1000)
547
 
)
548
 
PARTITION BY LIST(MOD(f_int1,2))
549
 
( PARTITION part1 VALUES IN (-1),
550
 
PARTITION part2 VALUES IN (0),
551
 
PARTITION part3 VALUES IN (-1));
552
 
ERROR HY000: Multiple definition of same constant in list partitioning
553
 
CREATE TABLE t1 (f1 BIGINT, f2 BIGINT)
554
 
PARTITION BY RANGE(f1)
555
 
(PARTITION part1 VALUES LESS THAN (0),
556
 
PARTITION part2 VALUES LESS THAN (0),
557
 
PARTITION part3 VALUES LESS THAN (10000));
558
 
ERROR HY000: VALUES LESS THAN value must be strictly increasing for each partition
559
 
#------------------------------------------------------------------------
560
 
#  3.2 The constants in VALUES LESS must be in increasing order
561
 
#------------------------------------------------------------------------
562
 
CREATE TABLE t1 (f1 BIGINT, f2 BIGINT)
563
 
PARTITION BY RANGE(f1)
564
 
(PARTITION part1 VALUES LESS THAN (0),
565
 
PARTITION part2 VALUES LESS THAN (-1),
566
 
PARTITION part3 VALUES LESS THAN (10000));
567
 
ERROR HY000: VALUES LESS THAN value must be strictly increasing for each partition
568
 
#------------------------------------------------------------------------
569
 
#  3.3 LIST partitions must be defined with VALUES IN
570
 
#------------------------------------------------------------------------
571
 
CREATE TABLE t1 (
572
 
f_int1 INTEGER,
573
 
f_int2 INTEGER,
574
 
f_char1 CHAR(20),
575
 
f_char2 CHAR(20),
576
 
f_charbig VARCHAR(1000)
577
 
)
578
 
PARTITION BY LIST(MOD(f_int1,2))
579
 
( PARTITION part1 VALUES LESS THAN (-1),
580
 
PARTITION part2 VALUES LESS THAN (0),
581
 
PARTITION part3 VALUES LESS THAN (1000));
582
 
ERROR HY000: Only RANGE PARTITIONING can use VALUES LESS THAN in partition definition
583
 
#------------------------------------------------------------------------
584
 
#  3.4 RANGE partitions must be defined with VALUES LESS THAN
585
 
#------------------------------------------------------------------------
586
 
CREATE TABLE t1 (
587
 
f_int1 INTEGER,
588
 
f_int2 INTEGER,
589
 
f_char1 CHAR(20),
590
 
f_char2 CHAR(20),
591
 
f_charbig VARCHAR(1000)
592
 
)
593
 
PARTITION BY RANGE(f_int1)
594
 
( PARTITION part1 VALUES IN (-1),
595
 
PARTITION part2 VALUES IN (0),
596
 
PARTITION part3 VALUES IN (1000));
597
 
ERROR HY000: Only LIST PARTITIONING can use VALUES IN in partition definition
598
 
#------------------------------------------------------------------------
599
 
#  3.5 Use of NULL in VALUES clauses
600
 
#------------------------------------------------------------------------
601
 
#  3.5.1 NULL in RANGE partitioning clause
602
 
#  3.5.1.1 VALUE LESS THAN (NULL) is not allowed
603
 
CREATE TABLE t1 (
604
 
f_int1 INTEGER,
605
 
f_int2 INTEGER,
606
 
f_char1 CHAR(20),
607
 
f_char2 CHAR(20),
608
 
f_charbig VARCHAR(1000)
609
 
)
610
 
PARTITION BY RANGE(f_int1)
611
 
( PARTITION part1 VALUES LESS THAN (NULL),
612
 
PARTITION part2 VALUES LESS THAN (1000));
613
 
ERROR 42000: Not allowed to use NULL value in VALUES LESS THAN near '),
614
 
PARTITION part2 VALUES LESS THAN (1000))' at line 9
615
 
#  3.5.1.2 VALUE LESS THAN (NULL) is not allowed
616
 
CREATE TABLE t1 (
617
 
f_int1 INTEGER,
618
 
f_int2 INTEGER,
619
 
f_char1 CHAR(20),
620
 
f_char2 CHAR(20),
621
 
f_charbig VARCHAR(1000)
622
 
)
623
 
PARTITION BY RANGE(f_int1)
624
 
( PARTITION part1 VALUES LESS THAN (NULL),
625
 
PARTITION part2 VALUES LESS THAN (1000));
626
 
ERROR 42000: Not allowed to use NULL value in VALUES LESS THAN near '),
627
 
PARTITION part2 VALUES LESS THAN (1000))' at line 9
628
 
#  3.5.2 NULL in LIST partitioning clause
629
 
#  3.5.2.1 VALUE IN (NULL)
630
 
CREATE TABLE t1 (
631
 
f_int1 INTEGER,
632
 
f_int2 INTEGER,
633
 
f_char1 CHAR(20),
634
 
f_char2 CHAR(20),
635
 
f_charbig VARCHAR(1000)
636
 
)
637
 
PARTITION BY LIST(MOD(f_int1,2))
638
 
( PARTITION part1 VALUES IN (NULL),
639
 
PARTITION part2 VALUES IN (0),
640
 
PARTITION part3 VALUES IN (1));
641
 
DROP TABLE t1;
642
 
#  3.5.2.2 VALUE IN (NULL)
643
 
CREATE TABLE t1 (
644
 
f_int1 INTEGER,
645
 
f_int2 INTEGER,
646
 
f_char1 CHAR(20),
647
 
f_char2 CHAR(20),
648
 
f_charbig VARCHAR(1000)
649
 
)
650
 
PARTITION BY LIST(MOD(f_int1,2))
651
 
( PARTITION part1 VALUES IN (NULL),
652
 
PARTITION part3 VALUES IN (1));
653
 
create_command
654
 
SHOW CREATE TABLE t1;
655
 
Table   Create Table
656
 
t1      CREATE TABLE `t1` (
657
 
  `f_int1` int(11) DEFAULT NULL,
658
 
  `f_int2` int(11) DEFAULT NULL,
659
 
  `f_char1` char(20) DEFAULT NULL,
660
 
  `f_char2` char(20) DEFAULT NULL,
661
 
  `f_charbig` varchar(1000) DEFAULT NULL
662
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,2)) (PARTITION part1 VALUES IN (NULL) ENGINE = InnoDB, PARTITION part3 VALUES IN (1) ENGINE = InnoDB) */
663
 
 
664
 
DROP TABLE t1;
665
 
#  3.5.3 Reveal that IN (...NULL) is not mapped to IN(0)
666
 
CREATE TABLE t1 (
667
 
f_int1 INTEGER,
668
 
f_int2 INTEGER,
669
 
f_char1 CHAR(20),
670
 
f_char2 CHAR(20),
671
 
f_charbig VARCHAR(1000)
672
 
)
673
 
PARTITION BY LIST(MOD(f_int1,2))
674
 
( PARTITION part1 VALUES IN (NULL),
675
 
PARTITION part2 VALUES IN (0),
676
 
PARTITION part3 VALUES IN (1));
677
 
create_command
678
 
SHOW CREATE TABLE t1;
679
 
Table   Create Table
680
 
t1      CREATE TABLE `t1` (
681
 
  `f_int1` int(11) DEFAULT NULL,
682
 
  `f_int2` int(11) DEFAULT NULL,
683
 
  `f_char1` char(20) DEFAULT NULL,
684
 
  `f_char2` char(20) DEFAULT NULL,
685
 
  `f_charbig` varchar(1000) DEFAULT NULL
686
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,2)) (PARTITION part1 VALUES IN (NULL) ENGINE = InnoDB, PARTITION part2 VALUES IN (0) ENGINE = InnoDB, PARTITION part3 VALUES IN (1) ENGINE = InnoDB) */
687
 
 
688
 
DROP TABLE t1;
689
 
 
690
 
#========================================================================
691
 
#  4. Check assigning the number of partitions and subpartitions
692
 
#     with and without named partitions/subpartitions
693
 
#========================================================================
694
 
DROP TABLE IF EXISTS t1;
695
 
#------------------------------------------------------------------------
696
 
# 4.1 (positive) without partition/subpartition number assignment
697
 
#------------------------------------------------------------------------
698
 
# 4.1.1 no partition number, no named partitions
699
 
CREATE TABLE t1 (
700
 
f_int1 INTEGER,
701
 
f_int2 INTEGER,
702
 
f_char1 CHAR(20),
703
 
f_char2 CHAR(20),
704
 
f_charbig VARCHAR(1000)
705
 
)
706
 
PARTITION BY HASH(f_int1);
707
 
create_command
708
 
SHOW CREATE TABLE t1;
709
 
Table   Create Table
710
 
t1      CREATE TABLE `t1` (
711
 
  `f_int1` int(11) DEFAULT NULL,
712
 
  `f_int2` int(11) DEFAULT NULL,
713
 
  `f_char1` char(20) DEFAULT NULL,
714
 
  `f_char2` char(20) DEFAULT NULL,
715
 
  `f_charbig` varchar(1000) DEFAULT NULL
716
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1)  */
717
 
 
718
 
DROP TABLE t1;
719
 
# 4.1.2 no partition number, named partitions
720
 
CREATE TABLE t1 (
721
 
f_int1 INTEGER,
722
 
f_int2 INTEGER,
723
 
f_char1 CHAR(20),
724
 
f_char2 CHAR(20),
725
 
f_charbig VARCHAR(1000)
726
 
)
727
 
PARTITION BY HASH(f_int1) (PARTITION part1, PARTITION part2);
728
 
create_command
729
 
SHOW CREATE TABLE t1;
730
 
Table   Create Table
731
 
t1      CREATE TABLE `t1` (
732
 
  `f_int1` int(11) DEFAULT NULL,
733
 
  `f_int2` int(11) DEFAULT NULL,
734
 
  `f_char1` char(20) DEFAULT NULL,
735
 
  `f_char2` char(20) DEFAULT NULL,
736
 
  `f_charbig` varchar(1000) DEFAULT NULL
737
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION part1 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB) */
738
 
 
739
 
DROP TABLE t1;
740
 
# 4.1.3 variations on no partition/subpartition number, named partitions,
741
 
#       different subpartitions are/are not named
742
 
CREATE TABLE t1 (  f_int1 INTEGER,
743
 
f_int2 INTEGER,
744
 
f_char1 CHAR(20),
745
 
f_char2 CHAR(20),
746
 
f_charbig VARCHAR(1000) )
747
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10), PARTITION part2 VALUES LESS THAN (20), PARTITION part3 VALUES LESS THAN (2147483646)) ;
748
 
DROP TABLE t1;
749
 
CREATE TABLE t1 (  f_int1 INTEGER,
750
 
f_int2 INTEGER,
751
 
f_char1 CHAR(20),
752
 
f_char2 CHAR(20),
753
 
f_charbig VARCHAR(1000) )
754
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10), PARTITION part2 VALUES LESS THAN (20), PARTITION part3 VALUES LESS THAN (2147483646)
755
 
(SUBPARTITION subpart31 , SUBPARTITION subpart32 )) ;
756
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '))' at line 7
757
 
CREATE TABLE t1 (  f_int1 INTEGER,
758
 
f_int2 INTEGER,
759
 
f_char1 CHAR(20),
760
 
f_char2 CHAR(20),
761
 
f_charbig VARCHAR(1000) )
762
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10), PARTITION part2 VALUES LESS THAN (20)
763
 
(SUBPARTITION subpart21 , SUBPARTITION subpart22 ), PARTITION part3 VALUES LESS THAN (2147483646)) ;
764
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), PARTITION part3 VALUES LESS THAN (2147483646))' at line 7
765
 
CREATE TABLE t1 (  f_int1 INTEGER,
766
 
f_int2 INTEGER,
767
 
f_char1 CHAR(20),
768
 
f_char2 CHAR(20),
769
 
f_charbig VARCHAR(1000) )
770
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10), PARTITION part2 VALUES LESS THAN (20)
771
 
(SUBPARTITION subpart21 , SUBPARTITION subpart22 ), PARTITION part3 VALUES LESS THAN (2147483646)
772
 
(SUBPARTITION subpart31 , SUBPARTITION subpart32 )) ;
773
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), PARTITION part3 VALUES LESS THAN (2147483646)
774
 
(SUBPARTITION subpart31 , SUBPA' at line 7
775
 
CREATE TABLE t1 (  f_int1 INTEGER,
776
 
f_int2 INTEGER,
777
 
f_char1 CHAR(20),
778
 
f_char2 CHAR(20),
779
 
f_charbig VARCHAR(1000) )
780
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10)
781
 
(SUBPARTITION subpart11 , SUBPARTITION subpart12 ), PARTITION part2 VALUES LESS THAN (20), PARTITION part3 VALUES LESS THAN (2147483646)) ;
782
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ' PARTITION part3 VALUES LESS THAN (2147483646))' at line 7
783
 
CREATE TABLE t1 (  f_int1 INTEGER,
784
 
f_int2 INTEGER,
785
 
f_char1 CHAR(20),
786
 
f_char2 CHAR(20),
787
 
f_charbig VARCHAR(1000) )
788
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10)
789
 
(SUBPARTITION subpart11 , SUBPARTITION subpart12 ), PARTITION part2 VALUES LESS THAN (20), PARTITION part3 VALUES LESS THAN (2147483646)
790
 
(SUBPARTITION subpart31 , SUBPARTITION subpart32 )) ;
791
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ' PARTITION part3 VALUES LESS THAN (2147483646)
792
 
(SUBPARTITION subpart31 , SUBPART' at line 7
793
 
CREATE TABLE t1 (  f_int1 INTEGER,
794
 
f_int2 INTEGER,
795
 
f_char1 CHAR(20),
796
 
f_char2 CHAR(20),
797
 
f_charbig VARCHAR(1000) )
798
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10)
799
 
(SUBPARTITION subpart11 , SUBPARTITION subpart12 ), PARTITION part2 VALUES LESS THAN (20)
800
 
(SUBPARTITION subpart21 , SUBPARTITION subpart22 ), PARTITION part3 VALUES LESS THAN (2147483646)) ;
801
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ')' at line 8
802
 
CREATE TABLE t1 (  f_int1 INTEGER,
803
 
f_int2 INTEGER,
804
 
f_char1 CHAR(20),
805
 
f_char2 CHAR(20),
806
 
f_charbig VARCHAR(1000) )
807
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10)
808
 
(SUBPARTITION subpart11 , SUBPARTITION subpart12 ), PARTITION part2 VALUES LESS THAN (20)
809
 
(SUBPARTITION subpart21 , SUBPARTITION subpart22 ), PARTITION part3 VALUES LESS THAN (2147483646)
810
 
(SUBPARTITION subpart31 , SUBPARTITION subpart32 )) ;
811
 
create_command
812
 
SHOW CREATE TABLE t1;
813
 
Table   Create Table
814
 
t1      CREATE TABLE `t1` (
815
 
  `f_int1` int(11) DEFAULT NULL,
816
 
  `f_int2` int(11) DEFAULT NULL,
817
 
  `f_char1` char(20) DEFAULT NULL,
818
 
  `f_char2` char(20) DEFAULT NULL,
819
 
  `f_charbig` varchar(1000) DEFAULT NULL
820
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int1) (PARTITION part1 VALUES LESS THAN (10) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (20) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB), PARTITION part3 VALUES LESS THAN (2147483646) (SUBPARTITION subpart31 ENGINE = InnoDB, SUBPARTITION subpart32 ENGINE = InnoDB)) */
821
 
 
822
 
DROP TABLE t1;
823
 
#------------------------------------------------------------------------
824
 
# 4.2 partition/subpartition numbers good and bad values and notations
825
 
#------------------------------------------------------------------------
826
 
DROP TABLE IF EXISTS t1;
827
 
# 4.2.1 partition/subpartition numbers INTEGER notation
828
 
CREATE TABLE t1 (
829
 
f_int1 INTEGER,
830
 
f_int2 INTEGER,
831
 
f_char1 CHAR(20),
832
 
f_char2 CHAR(20),
833
 
f_charbig VARCHAR(1000)
834
 
)
835
 
PARTITION BY HASH(f_int1) PARTITIONS 2;
836
 
create_command
837
 
SHOW CREATE TABLE t1;
838
 
Table   Create Table
839
 
t1      CREATE TABLE `t1` (
840
 
  `f_int1` int(11) DEFAULT NULL,
841
 
  `f_int2` int(11) DEFAULT NULL,
842
 
  `f_char1` char(20) DEFAULT NULL,
843
 
  `f_char2` char(20) DEFAULT NULL,
844
 
  `f_charbig` varchar(1000) DEFAULT NULL
845
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) PARTITIONS 2  */
846
 
 
847
 
DROP TABLE t1;
848
 
CREATE TABLE t1 (
849
 
f_int1 INTEGER,
850
 
f_int2 INTEGER,
851
 
f_char1 CHAR(20),
852
 
f_char2 CHAR(20),
853
 
f_charbig VARCHAR(1000)
854
 
)
855
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
856
 
SUBPARTITIONS 2
857
 
(PARTITION part1 VALUES LESS THAN (10),
858
 
PARTITION part2 VALUES LESS THAN (2147483646));
859
 
create_command
860
 
SHOW CREATE TABLE t1;
861
 
Table   Create Table
862
 
t1      CREATE TABLE `t1` (
863
 
  `f_int1` int(11) DEFAULT NULL,
864
 
  `f_int2` int(11) DEFAULT NULL,
865
 
  `f_char1` char(20) DEFAULT NULL,
866
 
  `f_char2` char(20) DEFAULT NULL,
867
 
  `f_charbig` varchar(1000) DEFAULT NULL
868
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part1 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION part2 VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
869
 
 
870
 
DROP TABLE t1;
871
 
CREATE TABLE t1 (
872
 
f_int1 INTEGER,
873
 
f_int2 INTEGER,
874
 
f_char1 CHAR(20),
875
 
f_char2 CHAR(20),
876
 
f_charbig VARCHAR(1000)
877
 
)
878
 
PARTITION BY HASH(f_int1) PARTITIONS 1;
879
 
create_command
880
 
SHOW CREATE TABLE t1;
881
 
Table   Create Table
882
 
t1      CREATE TABLE `t1` (
883
 
  `f_int1` int(11) DEFAULT NULL,
884
 
  `f_int2` int(11) DEFAULT NULL,
885
 
  `f_char1` char(20) DEFAULT NULL,
886
 
  `f_char2` char(20) DEFAULT NULL,
887
 
  `f_charbig` varchar(1000) DEFAULT NULL
888
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) PARTITIONS 1  */
889
 
 
890
 
DROP TABLE t1;
891
 
CREATE TABLE t1 (
892
 
f_int1 INTEGER,
893
 
f_int2 INTEGER,
894
 
f_char1 CHAR(20),
895
 
f_char2 CHAR(20),
896
 
f_charbig VARCHAR(1000)
897
 
)
898
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
899
 
SUBPARTITIONS 1
900
 
(PARTITION part1 VALUES LESS THAN (10),
901
 
PARTITION part2 VALUES LESS THAN (2147483646));
902
 
create_command
903
 
SHOW CREATE TABLE t1;
904
 
Table   Create Table
905
 
t1      CREATE TABLE `t1` (
906
 
  `f_int1` int(11) DEFAULT NULL,
907
 
  `f_int2` int(11) DEFAULT NULL,
908
 
  `f_char1` char(20) DEFAULT NULL,
909
 
  `f_char2` char(20) DEFAULT NULL,
910
 
  `f_charbig` varchar(1000) DEFAULT NULL
911
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 1 (PARTITION part1 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION part2 VALUES LESS THAN (2147483646) ENGINE = InnoDB) */
912
 
 
913
 
DROP TABLE t1;
914
 
CREATE TABLE t1 (
915
 
f_int1 INTEGER,
916
 
f_int2 INTEGER,
917
 
f_char1 CHAR(20),
918
 
f_char2 CHAR(20),
919
 
f_charbig VARCHAR(1000)
920
 
)
921
 
PARTITION BY HASH(f_int1) PARTITIONS 0;
922
 
ERROR HY000: Number of partitions = 0 is not an allowed value
923
 
CREATE TABLE t1 (
924
 
f_int1 INTEGER,
925
 
f_int2 INTEGER,
926
 
f_char1 CHAR(20),
927
 
f_char2 CHAR(20),
928
 
f_charbig VARCHAR(1000)
929
 
)
930
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
931
 
SUBPARTITIONS 0
932
 
(PARTITION part1 VALUES LESS THAN (10),
933
 
PARTITION part2 VALUES LESS THAN (2147483646));
934
 
ERROR HY000: Number of subpartitions = 0 is not an allowed value
935
 
CREATE TABLE t1 (
936
 
f_int1 INTEGER,
937
 
f_int2 INTEGER,
938
 
f_char1 CHAR(20),
939
 
f_char2 CHAR(20),
940
 
f_charbig VARCHAR(1000)
941
 
)
942
 
PARTITION BY HASH(f_int1) PARTITIONS -1;
943
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 8
944
 
CREATE TABLE t1 (
945
 
f_int1 INTEGER,
946
 
f_int2 INTEGER,
947
 
f_char1 CHAR(20),
948
 
f_char2 CHAR(20),
949
 
f_charbig VARCHAR(1000)
950
 
)
951
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
952
 
SUBPARTITIONS -1
953
 
(PARTITION part1 VALUES LESS THAN (10),
954
 
PARTITION part2 VALUES LESS THAN (2147483646));
955
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1
956
 
(PARTITION part1 VALUES LESS THAN (10),
957
 
PARTITION part2 VALUES LESS THAN (214' at line 9
958
 
CREATE TABLE t1 (
959
 
f_int1 INTEGER,
960
 
f_int2 INTEGER,
961
 
f_char1 CHAR(20),
962
 
f_char2 CHAR(20),
963
 
f_charbig VARCHAR(1000)
964
 
)
965
 
PARTITION BY HASH(f_int1) PARTITIONS 1000000;
966
 
ERROR HY000: Too many partitions (including subpartitions) were defined
967
 
CREATE TABLE t1 (
968
 
f_int1 INTEGER,
969
 
f_int2 INTEGER,
970
 
f_char1 CHAR(20),
971
 
f_char2 CHAR(20),
972
 
f_charbig VARCHAR(1000)
973
 
)
974
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
975
 
SUBPARTITIONS 1000000
976
 
(PARTITION part1 VALUES LESS THAN (10),
977
 
PARTITION part2 VALUES LESS THAN (2147483646));
978
 
ERROR HY000: Too many partitions (including subpartitions) were defined
979
 
# 4.2.2 partition/subpartition numbers DECIMAL notation
980
 
CREATE TABLE t1 (
981
 
f_int1 INTEGER,
982
 
f_int2 INTEGER,
983
 
f_char1 CHAR(20),
984
 
f_char2 CHAR(20),
985
 
f_charbig VARCHAR(1000)
986
 
)
987
 
PARTITION BY HASH(f_int1) PARTITIONS 2.0;
988
 
ERROR 42000: Only integers allowed as number here near '2.0' at line 8
989
 
CREATE TABLE t1 (
990
 
f_int1 INTEGER,
991
 
f_int2 INTEGER,
992
 
f_char1 CHAR(20),
993
 
f_char2 CHAR(20),
994
 
f_charbig VARCHAR(1000)
995
 
)
996
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
997
 
SUBPARTITIONS 2.0
998
 
(PARTITION part1 VALUES LESS THAN (10),
999
 
PARTITION part2 VALUES LESS THAN (2147483646));
1000
 
ERROR 42000: Only integers allowed as number here near '2.0
1001
 
(PARTITION part1 VALUES LESS THAN (10),
1002
 
PARTITION part2 VALUES LESS THAN (21' at line 9
1003
 
CREATE TABLE t1 (
1004
 
f_int1 INTEGER,
1005
 
f_int2 INTEGER,
1006
 
f_char1 CHAR(20),
1007
 
f_char2 CHAR(20),
1008
 
f_charbig VARCHAR(1000)
1009
 
)
1010
 
PARTITION BY HASH(f_int1) PARTITIONS -2.0;
1011
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-2.0' at line 8
1012
 
CREATE TABLE t1 (
1013
 
f_int1 INTEGER,
1014
 
f_int2 INTEGER,
1015
 
f_char1 CHAR(20),
1016
 
f_char2 CHAR(20),
1017
 
f_charbig VARCHAR(1000)
1018
 
)
1019
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1020
 
SUBPARTITIONS -2.0
1021
 
(PARTITION part1 VALUES LESS THAN (10),
1022
 
PARTITION part2 VALUES LESS THAN (2147483646));
1023
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-2.0
1024
 
(PARTITION part1 VALUES LESS THAN (10),
1025
 
PARTITION part2 VALUES LESS THAN (2' at line 9
1026
 
CREATE TABLE t1 (
1027
 
f_int1 INTEGER,
1028
 
f_int2 INTEGER,
1029
 
f_char1 CHAR(20),
1030
 
f_char2 CHAR(20),
1031
 
f_charbig VARCHAR(1000)
1032
 
)
1033
 
PARTITION BY HASH(f_int1) PARTITIONS 0.0;
1034
 
ERROR 42000: Only integers allowed as number here near '0.0' at line 8
1035
 
CREATE TABLE t1 (
1036
 
f_int1 INTEGER,
1037
 
f_int2 INTEGER,
1038
 
f_char1 CHAR(20),
1039
 
f_char2 CHAR(20),
1040
 
f_charbig VARCHAR(1000)
1041
 
)
1042
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1043
 
SUBPARTITIONS 0.0
1044
 
(PARTITION part1 VALUES LESS THAN (10),
1045
 
PARTITION part2 VALUES LESS THAN (2147483646));
1046
 
ERROR 42000: Only integers allowed as number here near '0.0
1047
 
(PARTITION part1 VALUES LESS THAN (10),
1048
 
PARTITION part2 VALUES LESS THAN (21' at line 9
1049
 
CREATE TABLE t1 (
1050
 
f_int1 INTEGER,
1051
 
f_int2 INTEGER,
1052
 
f_char1 CHAR(20),
1053
 
f_char2 CHAR(20),
1054
 
f_charbig VARCHAR(1000)
1055
 
)
1056
 
PARTITION BY HASH(f_int1) PARTITIONS 1.6;
1057
 
ERROR 42000: Only integers allowed as number here near '1.6' at line 8
1058
 
CREATE TABLE t1 (
1059
 
f_int1 INTEGER,
1060
 
f_int2 INTEGER,
1061
 
f_char1 CHAR(20),
1062
 
f_char2 CHAR(20),
1063
 
f_charbig VARCHAR(1000)
1064
 
)
1065
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1066
 
SUBPARTITIONS 1.6
1067
 
(PARTITION part1 VALUES LESS THAN (10),
1068
 
PARTITION part2 VALUES LESS THAN (2147483646));
1069
 
ERROR 42000: Only integers allowed as number here near '1.6
1070
 
(PARTITION part1 VALUES LESS THAN (10),
1071
 
PARTITION part2 VALUES LESS THAN (21' at line 9
1072
 
CREATE TABLE t1 (
1073
 
f_int1 INTEGER,
1074
 
f_int2 INTEGER,
1075
 
f_char1 CHAR(20),
1076
 
f_char2 CHAR(20),
1077
 
f_charbig VARCHAR(1000)
1078
 
)
1079
 
PARTITION BY HASH(f_int1) PARTITIONS 999999999999999999999999999999.999999999999999999999999999999;
1080
 
ERROR 42000: Only integers allowed as number here near '999999999999999999999999999999.999999999999999999999999999999' at line 8
1081
 
CREATE TABLE t1 (
1082
 
f_int1 INTEGER,
1083
 
f_int2 INTEGER,
1084
 
f_char1 CHAR(20),
1085
 
f_char2 CHAR(20),
1086
 
f_charbig VARCHAR(1000)
1087
 
)
1088
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1089
 
SUBPARTITIONS 999999999999999999999999999999.999999999999999999999999999999
1090
 
(PARTITION part1 VALUES LESS THAN (10),
1091
 
PARTITION part2 VALUES LESS THAN (2147483646));
1092
 
ERROR 42000: Only integers allowed as number here near '999999999999999999999999999999.999999999999999999999999999999
1093
 
(PARTITION part1 V' at line 9
1094
 
CREATE TABLE t1 (
1095
 
f_int1 INTEGER,
1096
 
f_int2 INTEGER,
1097
 
f_char1 CHAR(20),
1098
 
f_char2 CHAR(20),
1099
 
f_charbig VARCHAR(1000)
1100
 
)
1101
 
PARTITION BY HASH(f_int1) PARTITIONS 0.000000000000000000000000000001;
1102
 
ERROR 42000: Only integers allowed as number here near '0.000000000000000000000000000001' at line 8
1103
 
CREATE TABLE t1 (
1104
 
f_int1 INTEGER,
1105
 
f_int2 INTEGER,
1106
 
f_char1 CHAR(20),
1107
 
f_char2 CHAR(20),
1108
 
f_charbig VARCHAR(1000)
1109
 
)
1110
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1111
 
SUBPARTITIONS 0.000000000000000000000000000001
1112
 
(PARTITION part1 VALUES LESS THAN (10),
1113
 
PARTITION part2 VALUES LESS THAN (2147483646));
1114
 
ERROR 42000: Only integers allowed as number here near '0.000000000000000000000000000001
1115
 
(PARTITION part1 VALUES LESS THAN (10),
1116
 
PARTITI' at line 9
1117
 
# 4.2.3 partition/subpartition numbers FLOAT notation
1118
 
CREATE TABLE t1 (
1119
 
f_int1 INTEGER,
1120
 
f_int2 INTEGER,
1121
 
f_char1 CHAR(20),
1122
 
f_char2 CHAR(20),
1123
 
f_charbig VARCHAR(1000)
1124
 
)
1125
 
PARTITION BY HASH(f_int1) PARTITIONS 2.0E+0;
1126
 
ERROR 42000: Only integers allowed as number here near '2.0E+0' at line 8
1127
 
CREATE TABLE t1 (
1128
 
f_int1 INTEGER,
1129
 
f_int2 INTEGER,
1130
 
f_char1 CHAR(20),
1131
 
f_char2 CHAR(20),
1132
 
f_charbig VARCHAR(1000)
1133
 
)
1134
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1135
 
SUBPARTITIONS 2.0E+0
1136
 
(PARTITION part1 VALUES LESS THAN (10),
1137
 
PARTITION part2 VALUES LESS THAN (2147483646));
1138
 
ERROR 42000: Only integers allowed as number here near '2.0E+0
1139
 
(PARTITION part1 VALUES LESS THAN (10),
1140
 
PARTITION part2 VALUES LESS THAN ' at line 9
1141
 
CREATE TABLE t1 (
1142
 
f_int1 INTEGER,
1143
 
f_int2 INTEGER,
1144
 
f_char1 CHAR(20),
1145
 
f_char2 CHAR(20),
1146
 
f_charbig VARCHAR(1000)
1147
 
)
1148
 
PARTITION BY HASH(f_int1) PARTITIONS 0.2E+1;
1149
 
ERROR 42000: Only integers allowed as number here near '0.2E+1' at line 8
1150
 
CREATE TABLE t1 (
1151
 
f_int1 INTEGER,
1152
 
f_int2 INTEGER,
1153
 
f_char1 CHAR(20),
1154
 
f_char2 CHAR(20),
1155
 
f_charbig VARCHAR(1000)
1156
 
)
1157
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1158
 
SUBPARTITIONS 0.2E+1
1159
 
(PARTITION part1 VALUES LESS THAN (10),
1160
 
PARTITION part2 VALUES LESS THAN (2147483646));
1161
 
ERROR 42000: Only integers allowed as number here near '0.2E+1
1162
 
(PARTITION part1 VALUES LESS THAN (10),
1163
 
PARTITION part2 VALUES LESS THAN ' at line 9
1164
 
CREATE TABLE t1 (
1165
 
f_int1 INTEGER,
1166
 
f_int2 INTEGER,
1167
 
f_char1 CHAR(20),
1168
 
f_char2 CHAR(20),
1169
 
f_charbig VARCHAR(1000)
1170
 
)
1171
 
PARTITION BY HASH(f_int1) PARTITIONS -2.0E+0;
1172
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-2.0E+0' at line 8
1173
 
CREATE TABLE t1 (
1174
 
f_int1 INTEGER,
1175
 
f_int2 INTEGER,
1176
 
f_char1 CHAR(20),
1177
 
f_char2 CHAR(20),
1178
 
f_charbig VARCHAR(1000)
1179
 
)
1180
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1181
 
SUBPARTITIONS -2.0E+0
1182
 
(PARTITION part1 VALUES LESS THAN (10),
1183
 
PARTITION part2 VALUES LESS THAN (2147483646));
1184
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-2.0E+0
1185
 
(PARTITION part1 VALUES LESS THAN (10),
1186
 
PARTITION part2 VALUES LESS THAN' at line 9
1187
 
CREATE TABLE t1 (
1188
 
f_int1 INTEGER,
1189
 
f_int2 INTEGER,
1190
 
f_char1 CHAR(20),
1191
 
f_char2 CHAR(20),
1192
 
f_charbig VARCHAR(1000)
1193
 
)
1194
 
PARTITION BY HASH(f_int1) PARTITIONS 0.16E+1;
1195
 
ERROR 42000: Only integers allowed as number here near '0.16E+1' at line 8
1196
 
CREATE TABLE t1 (
1197
 
f_int1 INTEGER,
1198
 
f_int2 INTEGER,
1199
 
f_char1 CHAR(20),
1200
 
f_char2 CHAR(20),
1201
 
f_charbig VARCHAR(1000)
1202
 
)
1203
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1204
 
SUBPARTITIONS 0.16E+1
1205
 
(PARTITION part1 VALUES LESS THAN (10),
1206
 
PARTITION part2 VALUES LESS THAN (2147483646));
1207
 
ERROR 42000: Only integers allowed as number here near '0.16E+1
1208
 
(PARTITION part1 VALUES LESS THAN (10),
1209
 
PARTITION part2 VALUES LESS THAN' at line 9
1210
 
CREATE TABLE t1 (
1211
 
f_int1 INTEGER,
1212
 
f_int2 INTEGER,
1213
 
f_char1 CHAR(20),
1214
 
f_char2 CHAR(20),
1215
 
f_charbig VARCHAR(1000)
1216
 
)
1217
 
PARTITION BY HASH(f_int1) PARTITIONS 0.0E+300;
1218
 
ERROR 42000: Only integers allowed as number here near '0.0E+300' at line 8
1219
 
CREATE TABLE t1 (
1220
 
f_int1 INTEGER,
1221
 
f_int2 INTEGER,
1222
 
f_char1 CHAR(20),
1223
 
f_char2 CHAR(20),
1224
 
f_charbig VARCHAR(1000)
1225
 
)
1226
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1227
 
SUBPARTITIONS 0.0E+300
1228
 
(PARTITION part1 VALUES LESS THAN (10),
1229
 
PARTITION part2 VALUES LESS THAN (2147483646));
1230
 
ERROR 42000: Only integers allowed as number here near '0.0E+300
1231
 
(PARTITION part1 VALUES LESS THAN (10),
1232
 
PARTITION part2 VALUES LESS THA' at line 9
1233
 
CREATE TABLE t1 (
1234
 
f_int1 INTEGER,
1235
 
f_int2 INTEGER,
1236
 
f_char1 CHAR(20),
1237
 
f_char2 CHAR(20),
1238
 
f_charbig VARCHAR(1000)
1239
 
)
1240
 
PARTITION BY HASH(f_int1) PARTITIONS 1E+300;
1241
 
ERROR 42000: Only integers allowed as number here near '1E+300' at line 8
1242
 
CREATE TABLE t1 (
1243
 
f_int1 INTEGER,
1244
 
f_int2 INTEGER,
1245
 
f_char1 CHAR(20),
1246
 
f_char2 CHAR(20),
1247
 
f_charbig VARCHAR(1000)
1248
 
)
1249
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1250
 
SUBPARTITIONS 1E+300
1251
 
(PARTITION part1 VALUES LESS THAN (10),
1252
 
PARTITION part2 VALUES LESS THAN (2147483646));
1253
 
ERROR 42000: Only integers allowed as number here near '1E+300
1254
 
(PARTITION part1 VALUES LESS THAN (10),
1255
 
PARTITION part2 VALUES LESS THAN ' at line 9
1256
 
CREATE TABLE t1 (
1257
 
f_int1 INTEGER,
1258
 
f_int2 INTEGER,
1259
 
f_char1 CHAR(20),
1260
 
f_char2 CHAR(20),
1261
 
f_charbig VARCHAR(1000)
1262
 
)
1263
 
PARTITION BY HASH(f_int1) PARTITIONS 1E-300;
1264
 
ERROR 42000: Only integers allowed as number here near '1E-300' at line 8
1265
 
CREATE TABLE t1 (
1266
 
f_int1 INTEGER,
1267
 
f_int2 INTEGER,
1268
 
f_char1 CHAR(20),
1269
 
f_char2 CHAR(20),
1270
 
f_charbig VARCHAR(1000)
1271
 
)
1272
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1273
 
SUBPARTITIONS 1E-300
1274
 
(PARTITION part1 VALUES LESS THAN (10),
1275
 
PARTITION part2 VALUES LESS THAN (2147483646));
1276
 
ERROR 42000: Only integers allowed as number here near '1E-300
1277
 
(PARTITION part1 VALUES LESS THAN (10),
1278
 
PARTITION part2 VALUES LESS THAN ' at line 9
1279
 
# 4.2.4 partition/subpartition numbers STRING notation
1280
 
CREATE TABLE t1 (
1281
 
f_int1 INTEGER,
1282
 
f_int2 INTEGER,
1283
 
f_char1 CHAR(20),
1284
 
f_char2 CHAR(20),
1285
 
f_charbig VARCHAR(1000)
1286
 
)
1287
 
PARTITION BY HASH(f_int1) PARTITIONS '2';
1288
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2'' at line 8
1289
 
CREATE TABLE t1 (
1290
 
f_int1 INTEGER,
1291
 
f_int2 INTEGER,
1292
 
f_char1 CHAR(20),
1293
 
f_char2 CHAR(20),
1294
 
f_charbig VARCHAR(1000)
1295
 
)
1296
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1297
 
SUBPARTITIONS '2'
1298
 
(PARTITION part1 VALUES LESS THAN (10),
1299
 
PARTITION part2 VALUES LESS THAN (2147483646));
1300
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2'
1301
 
(PARTITION part1 VALUES LESS THAN (10),
1302
 
PARTITION part2 VALUES LESS THAN (21' at line 9
1303
 
CREATE TABLE t1 (
1304
 
f_int1 INTEGER,
1305
 
f_int2 INTEGER,
1306
 
f_char1 CHAR(20),
1307
 
f_char2 CHAR(20),
1308
 
f_charbig VARCHAR(1000)
1309
 
)
1310
 
PARTITION BY HASH(f_int1) PARTITIONS '2.0';
1311
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2.0'' at line 8
1312
 
CREATE TABLE t1 (
1313
 
f_int1 INTEGER,
1314
 
f_int2 INTEGER,
1315
 
f_char1 CHAR(20),
1316
 
f_char2 CHAR(20),
1317
 
f_charbig VARCHAR(1000)
1318
 
)
1319
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1320
 
SUBPARTITIONS '2.0'
1321
 
(PARTITION part1 VALUES LESS THAN (10),
1322
 
PARTITION part2 VALUES LESS THAN (2147483646));
1323
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2.0'
1324
 
(PARTITION part1 VALUES LESS THAN (10),
1325
 
PARTITION part2 VALUES LESS THAN (' at line 9
1326
 
CREATE TABLE t1 (
1327
 
f_int1 INTEGER,
1328
 
f_int2 INTEGER,
1329
 
f_char1 CHAR(20),
1330
 
f_char2 CHAR(20),
1331
 
f_charbig VARCHAR(1000)
1332
 
)
1333
 
PARTITION BY HASH(f_int1) PARTITIONS '0.2E+1';
1334
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0.2E+1'' at line 8
1335
 
CREATE TABLE t1 (
1336
 
f_int1 INTEGER,
1337
 
f_int2 INTEGER,
1338
 
f_char1 CHAR(20),
1339
 
f_char2 CHAR(20),
1340
 
f_charbig VARCHAR(1000)
1341
 
)
1342
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1343
 
SUBPARTITIONS '0.2E+1'
1344
 
(PARTITION part1 VALUES LESS THAN (10),
1345
 
PARTITION part2 VALUES LESS THAN (2147483646));
1346
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''0.2E+1'
1347
 
(PARTITION part1 VALUES LESS THAN (10),
1348
 
PARTITION part2 VALUES LESS THA' at line 9
1349
 
CREATE TABLE t1 (
1350
 
f_int1 INTEGER,
1351
 
f_int2 INTEGER,
1352
 
f_char1 CHAR(20),
1353
 
f_char2 CHAR(20),
1354
 
f_charbig VARCHAR(1000)
1355
 
)
1356
 
PARTITION BY HASH(f_int1) PARTITIONS '2A';
1357
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2A'' at line 8
1358
 
CREATE TABLE t1 (
1359
 
f_int1 INTEGER,
1360
 
f_int2 INTEGER,
1361
 
f_char1 CHAR(20),
1362
 
f_char2 CHAR(20),
1363
 
f_charbig VARCHAR(1000)
1364
 
)
1365
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1366
 
SUBPARTITIONS '2A'
1367
 
(PARTITION part1 VALUES LESS THAN (10),
1368
 
PARTITION part2 VALUES LESS THAN (2147483646));
1369
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2A'
1370
 
(PARTITION part1 VALUES LESS THAN (10),
1371
 
PARTITION part2 VALUES LESS THAN (2' at line 9
1372
 
CREATE TABLE t1 (
1373
 
f_int1 INTEGER,
1374
 
f_int2 INTEGER,
1375
 
f_char1 CHAR(20),
1376
 
f_char2 CHAR(20),
1377
 
f_charbig VARCHAR(1000)
1378
 
)
1379
 
PARTITION BY HASH(f_int1) PARTITIONS 'A2';
1380
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''A2'' at line 8
1381
 
CREATE TABLE t1 (
1382
 
f_int1 INTEGER,
1383
 
f_int2 INTEGER,
1384
 
f_char1 CHAR(20),
1385
 
f_char2 CHAR(20),
1386
 
f_charbig VARCHAR(1000)
1387
 
)
1388
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1389
 
SUBPARTITIONS 'A2'
1390
 
(PARTITION part1 VALUES LESS THAN (10),
1391
 
PARTITION part2 VALUES LESS THAN (2147483646));
1392
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''A2'
1393
 
(PARTITION part1 VALUES LESS THAN (10),
1394
 
PARTITION part2 VALUES LESS THAN (2' at line 9
1395
 
CREATE TABLE t1 (
1396
 
f_int1 INTEGER,
1397
 
f_int2 INTEGER,
1398
 
f_char1 CHAR(20),
1399
 
f_char2 CHAR(20),
1400
 
f_charbig VARCHAR(1000)
1401
 
)
1402
 
PARTITION BY HASH(f_int1) PARTITIONS '';
1403
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''' at line 8
1404
 
CREATE TABLE t1 (
1405
 
f_int1 INTEGER,
1406
 
f_int2 INTEGER,
1407
 
f_char1 CHAR(20),
1408
 
f_char2 CHAR(20),
1409
 
f_charbig VARCHAR(1000)
1410
 
)
1411
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1412
 
SUBPARTITIONS ''
1413
 
(PARTITION part1 VALUES LESS THAN (10),
1414
 
PARTITION part2 VALUES LESS THAN (2147483646));
1415
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''
1416
 
(PARTITION part1 VALUES LESS THAN (10),
1417
 
PARTITION part2 VALUES LESS THAN (214' at line 9
1418
 
CREATE TABLE t1 (
1419
 
f_int1 INTEGER,
1420
 
f_int2 INTEGER,
1421
 
f_char1 CHAR(20),
1422
 
f_char2 CHAR(20),
1423
 
f_charbig VARCHAR(1000)
1424
 
)
1425
 
PARTITION BY HASH(f_int1) PARTITIONS 'GARBAGE';
1426
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''GARBAGE'' at line 8
1427
 
CREATE TABLE t1 (
1428
 
f_int1 INTEGER,
1429
 
f_int2 INTEGER,
1430
 
f_char1 CHAR(20),
1431
 
f_char2 CHAR(20),
1432
 
f_charbig VARCHAR(1000)
1433
 
)
1434
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1435
 
SUBPARTITIONS 'GARBAGE'
1436
 
(PARTITION part1 VALUES LESS THAN (10),
1437
 
PARTITION part2 VALUES LESS THAN (2147483646));
1438
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''GARBAGE'
1439
 
(PARTITION part1 VALUES LESS THAN (10),
1440
 
PARTITION part2 VALUES LESS TH' at line 9
1441
 
# 4.2.5 partition/subpartition numbers other notations
1442
 
CREATE TABLE t1 (
1443
 
f_int1 INTEGER,
1444
 
f_int2 INTEGER,
1445
 
f_char1 CHAR(20),
1446
 
f_char2 CHAR(20),
1447
 
f_charbig VARCHAR(1000)
1448
 
)
1449
 
PARTITION BY HASH(f_int1) PARTITIONS 2A;
1450
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2A' at line 8
1451
 
CREATE TABLE t1 (
1452
 
f_int1 INTEGER,
1453
 
f_int2 INTEGER,
1454
 
f_char1 CHAR(20),
1455
 
f_char2 CHAR(20),
1456
 
f_charbig VARCHAR(1000)
1457
 
)
1458
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1459
 
SUBPARTITIONS 2A
1460
 
(PARTITION part1 VALUES LESS THAN (10),
1461
 
PARTITION part2 VALUES LESS THAN (2147483646));
1462
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2A
1463
 
(PARTITION part1 VALUES LESS THAN (10),
1464
 
PARTITION part2 VALUES LESS THAN (214' at line 9
1465
 
CREATE TABLE t1 (
1466
 
f_int1 INTEGER,
1467
 
f_int2 INTEGER,
1468
 
f_char1 CHAR(20),
1469
 
f_char2 CHAR(20),
1470
 
f_charbig VARCHAR(1000)
1471
 
)
1472
 
PARTITION BY HASH(f_int1) PARTITIONS A2;
1473
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'A2' at line 8
1474
 
CREATE TABLE t1 (
1475
 
f_int1 INTEGER,
1476
 
f_int2 INTEGER,
1477
 
f_char1 CHAR(20),
1478
 
f_char2 CHAR(20),
1479
 
f_charbig VARCHAR(1000)
1480
 
)
1481
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1482
 
SUBPARTITIONS A2
1483
 
(PARTITION part1 VALUES LESS THAN (10),
1484
 
PARTITION part2 VALUES LESS THAN (2147483646));
1485
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'A2
1486
 
(PARTITION part1 VALUES LESS THAN (10),
1487
 
PARTITION part2 VALUES LESS THAN (214' at line 9
1488
 
CREATE TABLE t1 (
1489
 
f_int1 INTEGER,
1490
 
f_int2 INTEGER,
1491
 
f_char1 CHAR(20),
1492
 
f_char2 CHAR(20),
1493
 
f_charbig VARCHAR(1000)
1494
 
)
1495
 
PARTITION BY HASH(f_int1) PARTITIONS GARBAGE;
1496
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GARBAGE' at line 8
1497
 
CREATE TABLE t1 (
1498
 
f_int1 INTEGER,
1499
 
f_int2 INTEGER,
1500
 
f_char1 CHAR(20),
1501
 
f_char2 CHAR(20),
1502
 
f_charbig VARCHAR(1000)
1503
 
)
1504
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1505
 
SUBPARTITIONS GARBAGE
1506
 
(PARTITION part1 VALUES LESS THAN (10),
1507
 
PARTITION part2 VALUES LESS THAN (2147483646));
1508
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GARBAGE
1509
 
(PARTITION part1 VALUES LESS THAN (10),
1510
 
PARTITION part2 VALUES LESS THAN' at line 9
1511
 
CREATE TABLE t1 (
1512
 
f_int1 INTEGER,
1513
 
f_int2 INTEGER,
1514
 
f_char1 CHAR(20),
1515
 
f_char2 CHAR(20),
1516
 
f_charbig VARCHAR(1000)
1517
 
)
1518
 
PARTITION BY HASH(f_int1) PARTITIONS "2";
1519
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"2"' at line 8
1520
 
CREATE TABLE t1 (
1521
 
f_int1 INTEGER,
1522
 
f_int2 INTEGER,
1523
 
f_char1 CHAR(20),
1524
 
f_char2 CHAR(20),
1525
 
f_charbig VARCHAR(1000)
1526
 
)
1527
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1528
 
SUBPARTITIONS "2"
1529
 
(PARTITION part1 VALUES LESS THAN (10),
1530
 
PARTITION part2 VALUES LESS THAN (2147483646));
1531
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"2"
1532
 
(PARTITION part1 VALUES LESS THAN (10),
1533
 
PARTITION part2 VALUES LESS THAN (21' at line 9
1534
 
CREATE TABLE t1 (
1535
 
f_int1 INTEGER,
1536
 
f_int2 INTEGER,
1537
 
f_char1 CHAR(20),
1538
 
f_char2 CHAR(20),
1539
 
f_charbig VARCHAR(1000)
1540
 
)
1541
 
PARTITION BY HASH(f_int1) PARTITIONS "2A";
1542
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"2A"' at line 8
1543
 
CREATE TABLE t1 (
1544
 
f_int1 INTEGER,
1545
 
f_int2 INTEGER,
1546
 
f_char1 CHAR(20),
1547
 
f_char2 CHAR(20),
1548
 
f_charbig VARCHAR(1000)
1549
 
)
1550
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1551
 
SUBPARTITIONS "2A"
1552
 
(PARTITION part1 VALUES LESS THAN (10),
1553
 
PARTITION part2 VALUES LESS THAN (2147483646));
1554
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"2A"
1555
 
(PARTITION part1 VALUES LESS THAN (10),
1556
 
PARTITION part2 VALUES LESS THAN (2' at line 9
1557
 
CREATE TABLE t1 (
1558
 
f_int1 INTEGER,
1559
 
f_int2 INTEGER,
1560
 
f_char1 CHAR(20),
1561
 
f_char2 CHAR(20),
1562
 
f_charbig VARCHAR(1000)
1563
 
)
1564
 
PARTITION BY HASH(f_int1) PARTITIONS "A2";
1565
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"A2"' at line 8
1566
 
CREATE TABLE t1 (
1567
 
f_int1 INTEGER,
1568
 
f_int2 INTEGER,
1569
 
f_char1 CHAR(20),
1570
 
f_char2 CHAR(20),
1571
 
f_charbig VARCHAR(1000)
1572
 
)
1573
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1574
 
SUBPARTITIONS "A2"
1575
 
(PARTITION part1 VALUES LESS THAN (10),
1576
 
PARTITION part2 VALUES LESS THAN (2147483646));
1577
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"A2"
1578
 
(PARTITION part1 VALUES LESS THAN (10),
1579
 
PARTITION part2 VALUES LESS THAN (2' at line 9
1580
 
CREATE TABLE t1 (
1581
 
f_int1 INTEGER,
1582
 
f_int2 INTEGER,
1583
 
f_char1 CHAR(20),
1584
 
f_char2 CHAR(20),
1585
 
f_charbig VARCHAR(1000)
1586
 
)
1587
 
PARTITION BY HASH(f_int1) PARTITIONS "GARBAGE";
1588
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"GARBAGE"' at line 8
1589
 
CREATE TABLE t1 (
1590
 
f_int1 INTEGER,
1591
 
f_int2 INTEGER,
1592
 
f_char1 CHAR(20),
1593
 
f_char2 CHAR(20),
1594
 
f_charbig VARCHAR(1000)
1595
 
)
1596
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1597
 
SUBPARTITIONS "GARBAGE"
1598
 
(PARTITION part1 VALUES LESS THAN (10),
1599
 
PARTITION part2 VALUES LESS THAN (2147483646));
1600
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"GARBAGE"
1601
 
(PARTITION part1 VALUES LESS THAN (10),
1602
 
PARTITION part2 VALUES LESS TH' at line 9
1603
 
# 4.2.6 (negative) partition/subpartition numbers per @variables
1604
 
SET @aux = 5;
1605
 
CREATE TABLE t1 (
1606
 
f_int1 INTEGER,
1607
 
f_int2 INTEGER,
1608
 
f_char1 CHAR(20),
1609
 
f_char2 CHAR(20),
1610
 
f_charbig VARCHAR(1000)
1611
 
)
1612
 
PARTITION BY HASH(f_int1) PARTITIONS @aux;
1613
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@aux' at line 8
1614
 
CREATE TABLE t1 (
1615
 
f_int1 INTEGER,
1616
 
f_int2 INTEGER,
1617
 
f_char1 CHAR(20),
1618
 
f_char2 CHAR(20),
1619
 
f_charbig VARCHAR(1000)
1620
 
)
1621
 
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
1622
 
SUBPARTITIONS @aux = 5
1623
 
(PARTITION part1 VALUES LESS THAN (10),
1624
 
PARTITION part2 VALUES LESS THAN (2147483646));
1625
 
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@aux = 5
1626
 
(PARTITION part1 VALUES LESS THAN (10),
1627
 
PARTITION part2 VALUES LESS THA' at line 9
1628
 
#------------------------------------------------------------------------
1629
 
# 4.3 Mixups of assigned partition/subpartition numbers and names
1630
 
#------------------------------------------------------------------------
1631
 
# 4.3.1 (positive) number of partition/subpartition
1632
 
#                         = number of named partition/subpartition
1633
 
CREATE TABLE t1 (
1634
 
f_int1 INTEGER,
1635
 
f_int2 INTEGER,
1636
 
f_char1 CHAR(20),
1637
 
f_char2 CHAR(20),
1638
 
f_charbig VARCHAR(1000)
1639
 
)
1640
 
PARTITION BY HASH(f_int1) PARTITIONS 2 ( PARTITION part1, PARTITION part2 ) ;
1641
 
create_command
1642
 
SHOW CREATE TABLE t1;
1643
 
Table   Create Table
1644
 
t1      CREATE TABLE `t1` (
1645
 
  `f_int1` int(11) DEFAULT NULL,
1646
 
  `f_int2` int(11) DEFAULT NULL,
1647
 
  `f_char1` char(20) DEFAULT NULL,
1648
 
  `f_char2` char(20) DEFAULT NULL,
1649
 
  `f_charbig` varchar(1000) DEFAULT NULL
1650
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION part1 ENGINE = InnoDB, PARTITION part2 ENGINE = InnoDB) */
1651
 
 
1652
 
DROP TABLE t1;
1653
 
CREATE TABLE t1 (
1654
 
f_int1 INTEGER,
1655
 
f_int2 INTEGER,
1656
 
f_char1 CHAR(20),
1657
 
f_char2 CHAR(20),
1658
 
f_charbig VARCHAR(1000)
1659
 
)
1660
 
PARTITION BY RANGE(f_int1) PARTITIONS 2
1661
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
1662
 
( PARTITION part1 VALUES LESS THAN (1000)
1663
 
(SUBPARTITION subpart11, SUBPARTITION subpart12),
1664
 
PARTITION part2 VALUES LESS THAN (2147483646)
1665
 
(SUBPARTITION subpart21, SUBPARTITION subpart22)
1666
 
);
1667
 
create_command
1668
 
SHOW CREATE TABLE t1;
1669
 
Table   Create Table
1670
 
t1      CREATE TABLE `t1` (
1671
 
  `f_int1` int(11) DEFAULT NULL,
1672
 
  `f_int2` int(11) DEFAULT NULL,
1673
 
  `f_char1` char(20) DEFAULT NULL,
1674
 
  `f_char2` char(20) DEFAULT NULL,
1675
 
  `f_charbig` varchar(1000) DEFAULT NULL
1676
 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = InnoDB, SUBPARTITION subpart12 ENGINE = InnoDB), PARTITION part2 VALUES LESS THAN (2147483646) (SUBPARTITION subpart21 ENGINE = InnoDB, SUBPARTITION subpart22 ENGINE = InnoDB)) */
1677
 
 
1678
 
DROP TABLE t1;
1679
 
# 4.3.2 (positive) number of partition/subpartition ,
1680
 
#                  0 (= no) named partition/subpartition
1681
 
#                  already checked above
1682
 
# 4.3.3 (negative) number of partitions/subpartitions
1683
 
#                         > number of named partitions/subpartitions
1684
 
CREATE TABLE t1 (
1685
 
f_int1 INTEGER,
1686
 
f_int2 INTEGER,
1687
 
f_char1 CHAR(20),
1688
 
f_char2 CHAR(20),
1689
 
f_charbig VARCHAR(1000)
1690
 
)
1691
 
PARTITION BY HASH(f_int1) PARTITIONS 2 ( PARTITION part1 ) ;
1692
 
ERROR 42000: Wrong number of partitions defined, mismatch with previous setting near ')' at line 8
1693
 
CREATE TABLE t1 (
1694
 
f_int1 INTEGER,
1695
 
f_int2 INTEGER,
1696
 
f_char1 CHAR(20),
1697
 
f_char2 CHAR(20),
1698
 
f_charbig VARCHAR(1000)
1699
 
)
1700
 
PARTITION BY RANGE(f_int1)
1701
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
1702
 
( PARTITION part1 VALUES LESS THAN (1000)
1703
 
(SUBPARTITION subpart11 ),
1704
 
PARTITION part2 VALUES LESS THAN (2147483646)
1705
 
(SUBPARTITION subpart21, SUBPARTITION subpart22)
1706
 
);
1707
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '),
1708
 
PARTITION part2 VALUES LESS THAN (2147483646)
1709
 
(SUBPARTITION subpart21, SUBPAR' at line 11
1710
 
CREATE TABLE t1 (
1711
 
f_int1 INTEGER,
1712
 
f_int2 INTEGER,
1713
 
f_char1 CHAR(20),
1714
 
f_char2 CHAR(20),
1715
 
f_charbig VARCHAR(1000)
1716
 
)
1717
 
PARTITION BY RANGE(f_int1)
1718
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
1719
 
( PARTITION part1 VALUES LESS THAN (1000)
1720
 
(SUBPARTITION subpart11, SUBPARTITION subpart12),
1721
 
PARTITION part2 VALUES LESS THAN (2000)
1722
 
(SUBPARTITION subpart21 ),
1723
 
PARTITION part3 VALUES LESS THAN (2147483646)
1724
 
(SUBPARTITION subpart31, SUBPARTITION subpart32)
1725
 
);
1726
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '),
1727
 
PARTITION part3 VALUES LESS THAN (2147483646)
1728
 
(SUBPARTITION subpart31, SUBPAR' at line 13
1729
 
CREATE TABLE t1 (
1730
 
f_int1 INTEGER,
1731
 
f_int2 INTEGER,
1732
 
f_char1 CHAR(20),
1733
 
f_char2 CHAR(20),
1734
 
f_charbig VARCHAR(1000)
1735
 
)
1736
 
PARTITION BY RANGE(f_int1) PARTITIONS 2
1737
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
1738
 
( PARTITION part1 VALUES LESS THAN (1000)
1739
 
(SUBPARTITION subpart11, SUBPARTITION subpart12),
1740
 
PARTITION part2 VALUES LESS THAN (2147483646)
1741
 
(SUBPARTITION subpart21                        )
1742
 
);
1743
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ')
1744
 
)' at line 13
1745
 
# 4.3.4 (negative) number of partitions < number of named partitions
1746
 
CREATE TABLE t1 (
1747
 
f_int1 INTEGER,
1748
 
f_int2 INTEGER,
1749
 
f_char1 CHAR(20),
1750
 
f_char2 CHAR(20),
1751
 
f_charbig VARCHAR(1000)
1752
 
)
1753
 
PARTITION BY HASH(f_int1) PARTITIONS 1 ( PARTITION part1, PARTITION part2 ) ;
1754
 
ERROR 42000: Wrong number of partitions defined, mismatch with previous setting near ')' at line 8
1755
 
CREATE TABLE t1 (
1756
 
f_int1 INTEGER,
1757
 
f_int2 INTEGER,
1758
 
f_char1 CHAR(20),
1759
 
f_char2 CHAR(20),
1760
 
f_charbig VARCHAR(1000)
1761
 
)
1762
 
PARTITION BY RANGE(f_int1)
1763
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 1
1764
 
( PARTITION part1 VALUES LESS THAN (1000)
1765
 
(SUBPARTITION subpart11, SUBPARTITION subpart12),
1766
 
PARTITION part2 VALUES LESS THAN (2147483646)
1767
 
(SUBPARTITION subpart21, SUBPARTITION subpart22)
1768
 
);
1769
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '),
1770
 
PARTITION part2 VALUES LESS THAN (2147483646)
1771
 
(SUBPARTITION subpart21, SUBPAR' at line 11
1772
 
CREATE TABLE t1 (
1773
 
f_int1 INTEGER,
1774
 
f_int2 INTEGER,
1775
 
f_char1 CHAR(20),
1776
 
f_char2 CHAR(20),
1777
 
f_charbig VARCHAR(1000)
1778
 
)
1779
 
PARTITION BY RANGE(f_int1)
1780
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 1
1781
 
( PARTITION part1 VALUES LESS THAN (1000)
1782
 
(SUBPARTITION subpart11, SUBPARTITION subpart12),
1783
 
PARTITION part2 VALUES LESS THAN (2000)
1784
 
(SUBPARTITION subpart21                        ),
1785
 
PARTITION part3 VALUES LESS THAN (2147483646)
1786
 
(SUBPARTITION subpart31, SUBPARTITION subpart32)
1787
 
);
1788
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '),
1789
 
PARTITION part2 VALUES LESS THAN (2000)
1790
 
(SUBPARTITION subpart21              ' at line 11
1791
 
CREATE TABLE t1 (
1792
 
f_int1 INTEGER,
1793
 
f_int2 INTEGER,
1794
 
f_char1 CHAR(20),
1795
 
f_char2 CHAR(20),
1796
 
f_charbig VARCHAR(1000)
1797
 
)
1798
 
PARTITION BY RANGE(f_int1)
1799
 
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 1
1800
 
( PARTITION part1 VALUES LESS THAN (1000)
1801
 
(SUBPARTITION subpart11, SUBPARTITION subpart12),
1802
 
PARTITION part2 VALUES LESS THAN (2147483646)
1803
 
(SUBPARTITION subpart21, SUBPARTITION subpart22)
1804
 
);
1805
 
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '),
1806
 
PARTITION part2 VALUES LESS THAN (2147483646)
1807
 
(SUBPARTITION subpart21, SUBPAR' at line 11
1808
 
 
1809
 
#========================================================================
1810
 
#  5. Checks of logical partition/subpartition name
1811
 
#     file name clashes during CREATE TABLE
1812
 
#========================================================================
1813
 
DROP TABLE IF EXISTS t1;
1814
 
#------------------------------------------------------------------------
1815
 
#  5.1 (negative) A partition/subpartition name used more than once
1816
 
#------------------------------------------------------------------------
1817
 
#  5.1.1 duplicate partition name
1818
 
CREATE TABLE t1 (
1819
 
f_int1 INTEGER,
1820
 
f_int2 INTEGER,
1821
 
f_char1 CHAR(20),
1822
 
f_char2 CHAR(20),
1823
 
f_charbig VARCHAR(1000)
1824
 
)
1825
 
PARTITION BY HASH(f_int1) (PARTITION part1, PARTITION part1);
1826
 
ERROR HY000: Duplicate partition name part1
1827
 
#  5.1.2 duplicate subpartition name
1828
 
CREATE TABLE t1 (
1829
 
f_int1 INTEGER,
1830
 
f_int2 INTEGER,
1831
 
f_char1 CHAR(20),
1832
 
f_char2 CHAR(20),
1833
 
f_charbig VARCHAR(1000)
1834
 
)
1835
 
PARTITION BY RANGE(f_int1)
1836
 
SUBPARTITION BY HASH(f_int1)
1837
 
( PARTITION part1 VALUES LESS THAN (1000)
1838
 
(SUBPARTITION subpart11, SUBPARTITION subpart11)
1839
 
);
1840
 
ERROR HY000: Duplicate partition name subpart11
1841
 
DROP VIEW  IF EXISTS v1;
1842
 
DROP TABLE IF EXISTS t1;
1843
 
DROP TABLE IF EXISTS t0_aux;
1844
 
DROP TABLE IF EXISTS t0_definition;
1845
 
DROP TABLE IF EXISTS t0_template;