~drizzle-trunk/drizzle/development

« back to all changes in this revision

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

  • Committer: brian
  • Date: 2008-06-25 05:29:13 UTC
  • Revision ID: brian@localhost.localdomain-20080625052913-6upwo0jsrl4lnapl
clean slate

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
SET @max_row = 20;
 
2
SET @@session.storage_engine = 'MyISAM';
 
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=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,2)) (PARTITION part1 VALUES IN (NULL) ENGINE = MyISAM, PARTITION part3 VALUES IN (1) ENGINE = MyISAM) */
 
663
 
 
664
unified filelist
 
665
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
 
666
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
 
667
$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD
 
668
$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI
 
669
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
670
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
671
 
 
672
DROP TABLE t1;
 
673
#  3.5.3 Reveal that IN (...NULL) is not mapped to IN(0)
 
674
CREATE TABLE t1 (
 
675
f_int1 INTEGER,
 
676
f_int2 INTEGER,
 
677
f_char1 CHAR(20),
 
678
f_char2 CHAR(20),
 
679
f_charbig VARCHAR(1000)
 
680
)
 
681
PARTITION BY LIST(MOD(f_int1,2))
 
682
( PARTITION part1 VALUES IN (NULL),
 
683
PARTITION part2 VALUES IN (0),
 
684
PARTITION part3 VALUES IN (1));
 
685
create_command
 
686
SHOW CREATE TABLE t1;
 
687
Table   Create Table
 
688
t1      CREATE TABLE `t1` (
 
689
  `f_int1` int(11) DEFAULT NULL,
 
690
  `f_int2` int(11) DEFAULT NULL,
 
691
  `f_char1` char(20) DEFAULT NULL,
 
692
  `f_char2` char(20) DEFAULT NULL,
 
693
  `f_charbig` varchar(1000) DEFAULT NULL
 
694
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY LIST (MOD(f_int1,2)) (PARTITION part1 VALUES IN (NULL) ENGINE = MyISAM, PARTITION part2 VALUES IN (0) ENGINE = MyISAM, PARTITION part3 VALUES IN (1) ENGINE = MyISAM) */
 
695
 
 
696
unified filelist
 
697
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
 
698
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
 
699
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
 
700
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
 
701
$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYD
 
702
$MYSQLTEST_VARDIR/master-data/test/t1#P#part3.MYI
 
703
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
704
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
705
 
 
706
DROP TABLE t1;
 
707
 
 
708
#========================================================================
 
709
#  4. Check assigning the number of partitions and subpartitions
 
710
#     with and without named partitions/subpartitions
 
711
#========================================================================
 
712
DROP TABLE IF EXISTS t1;
 
713
#------------------------------------------------------------------------
 
714
# 4.1 (positive) without partition/subpartition number assignment
 
715
#------------------------------------------------------------------------
 
716
# 4.1.1 no partition number, no named partitions
 
717
CREATE TABLE t1 (
 
718
f_int1 INTEGER,
 
719
f_int2 INTEGER,
 
720
f_char1 CHAR(20),
 
721
f_char2 CHAR(20),
 
722
f_charbig VARCHAR(1000)
 
723
)
 
724
PARTITION BY HASH(f_int1);
 
725
create_command
 
726
SHOW CREATE TABLE t1;
 
727
Table   Create Table
 
728
t1      CREATE TABLE `t1` (
 
729
  `f_int1` int(11) DEFAULT NULL,
 
730
  `f_int2` int(11) DEFAULT NULL,
 
731
  `f_char1` char(20) DEFAULT NULL,
 
732
  `f_char2` char(20) DEFAULT NULL,
 
733
  `f_charbig` varchar(1000) DEFAULT NULL
 
734
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1)  */
 
735
 
 
736
unified filelist
 
737
$MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
 
738
$MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
 
739
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
740
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
741
 
 
742
DROP TABLE t1;
 
743
# 4.1.2 no partition number, named partitions
 
744
CREATE TABLE t1 (
 
745
f_int1 INTEGER,
 
746
f_int2 INTEGER,
 
747
f_char1 CHAR(20),
 
748
f_char2 CHAR(20),
 
749
f_charbig VARCHAR(1000)
 
750
)
 
751
PARTITION BY HASH(f_int1) (PARTITION part1, PARTITION part2);
 
752
create_command
 
753
SHOW CREATE TABLE t1;
 
754
Table   Create Table
 
755
t1      CREATE TABLE `t1` (
 
756
  `f_int1` int(11) DEFAULT NULL,
 
757
  `f_int2` int(11) DEFAULT NULL,
 
758
  `f_char1` char(20) DEFAULT NULL,
 
759
  `f_char2` char(20) DEFAULT NULL,
 
760
  `f_charbig` varchar(1000) DEFAULT NULL
 
761
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION part1 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */
 
762
 
 
763
unified filelist
 
764
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
 
765
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
 
766
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
 
767
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
 
768
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
769
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
770
 
 
771
DROP TABLE t1;
 
772
# 4.1.3 variations on no partition/subpartition number, named partitions,
 
773
#       different subpartitions are/are not named
 
774
CREATE TABLE t1 (  f_int1 INTEGER,
 
775
f_int2 INTEGER,
 
776
f_char1 CHAR(20),
 
777
f_char2 CHAR(20),
 
778
f_charbig VARCHAR(1000) )
 
779
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)) ;
 
780
DROP TABLE t1;
 
781
CREATE TABLE t1 (  f_int1 INTEGER,
 
782
f_int2 INTEGER,
 
783
f_char1 CHAR(20),
 
784
f_char2 CHAR(20),
 
785
f_charbig VARCHAR(1000) )
 
786
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)
 
787
(SUBPARTITION subpart31 , SUBPARTITION subpart32 )) ;
 
788
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '))' at line 7
 
789
CREATE TABLE t1 (  f_int1 INTEGER,
 
790
f_int2 INTEGER,
 
791
f_char1 CHAR(20),
 
792
f_char2 CHAR(20),
 
793
f_charbig VARCHAR(1000) )
 
794
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10), PARTITION part2 VALUES LESS THAN (20)
 
795
(SUBPARTITION subpart21 , SUBPARTITION subpart22 ), PARTITION part3 VALUES LESS THAN (2147483646)) ;
 
796
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), PARTITION part3 VALUES LESS THAN (2147483646))' at line 7
 
797
CREATE TABLE t1 (  f_int1 INTEGER,
 
798
f_int2 INTEGER,
 
799
f_char1 CHAR(20),
 
800
f_char2 CHAR(20),
 
801
f_charbig VARCHAR(1000) )
 
802
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10), PARTITION part2 VALUES LESS THAN (20)
 
803
(SUBPARTITION subpart21 , SUBPARTITION subpart22 ), PARTITION part3 VALUES LESS THAN (2147483646)
 
804
(SUBPARTITION subpart31 , SUBPARTITION subpart32 )) ;
 
805
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '), PARTITION part3 VALUES LESS THAN (2147483646)
 
806
(SUBPARTITION subpart31 , SUBPA' at line 7
 
807
CREATE TABLE t1 (  f_int1 INTEGER,
 
808
f_int2 INTEGER,
 
809
f_char1 CHAR(20),
 
810
f_char2 CHAR(20),
 
811
f_charbig VARCHAR(1000) )
 
812
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10)
 
813
(SUBPARTITION subpart11 , SUBPARTITION subpart12 ), PARTITION part2 VALUES LESS THAN (20), PARTITION part3 VALUES LESS THAN (2147483646)) ;
 
814
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ' PARTITION part3 VALUES LESS THAN (2147483646))' at line 7
 
815
CREATE TABLE t1 (  f_int1 INTEGER,
 
816
f_int2 INTEGER,
 
817
f_char1 CHAR(20),
 
818
f_char2 CHAR(20),
 
819
f_charbig VARCHAR(1000) )
 
820
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10)
 
821
(SUBPARTITION subpart11 , SUBPARTITION subpart12 ), PARTITION part2 VALUES LESS THAN (20), PARTITION part3 VALUES LESS THAN (2147483646)
 
822
(SUBPARTITION subpart31 , SUBPARTITION subpart32 )) ;
 
823
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ' PARTITION part3 VALUES LESS THAN (2147483646)
 
824
(SUBPARTITION subpart31 , SUBPART' at line 7
 
825
CREATE TABLE t1 (  f_int1 INTEGER,
 
826
f_int2 INTEGER,
 
827
f_char1 CHAR(20),
 
828
f_char2 CHAR(20),
 
829
f_charbig VARCHAR(1000) )
 
830
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10)
 
831
(SUBPARTITION subpart11 , SUBPARTITION subpart12 ), PARTITION part2 VALUES LESS THAN (20)
 
832
(SUBPARTITION subpart21 , SUBPARTITION subpart22 ), PARTITION part3 VALUES LESS THAN (2147483646)) ;
 
833
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ')' at line 8
 
834
CREATE TABLE t1 (  f_int1 INTEGER,
 
835
f_int2 INTEGER,
 
836
f_char1 CHAR(20),
 
837
f_char2 CHAR(20),
 
838
f_charbig VARCHAR(1000) )
 
839
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) (PARTITION part1 VALUES LESS THAN (10)
 
840
(SUBPARTITION subpart11 , SUBPARTITION subpart12 ), PARTITION part2 VALUES LESS THAN (20)
 
841
(SUBPARTITION subpart21 , SUBPARTITION subpart22 ), PARTITION part3 VALUES LESS THAN (2147483646)
 
842
(SUBPARTITION subpart31 , SUBPARTITION subpart32 )) ;
 
843
create_command
 
844
SHOW CREATE TABLE t1;
 
845
Table   Create Table
 
846
t1      CREATE TABLE `t1` (
 
847
  `f_int1` int(11) DEFAULT NULL,
 
848
  `f_int2` int(11) DEFAULT NULL,
 
849
  `f_char1` char(20) DEFAULT NULL,
 
850
  `f_char2` char(20) DEFAULT NULL,
 
851
  `f_charbig` varchar(1000) DEFAULT NULL
 
852
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int1) (PARTITION part1 VALUES LESS THAN (10) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (20) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM), PARTITION part3 VALUES LESS THAN (2147483646) (SUBPARTITION subpart31 ENGINE = MyISAM, SUBPARTITION subpart32 ENGINE = MyISAM)) */
 
853
 
 
854
unified filelist
 
855
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
 
856
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI
 
857
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD
 
858
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI
 
859
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD
 
860
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI
 
861
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD
 
862
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI
 
863
$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYD
 
864
$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart31.MYI
 
865
$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYD
 
866
$MYSQLTEST_VARDIR/master-data/test/t1#P#part3#SP#subpart32.MYI
 
867
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
868
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
869
 
 
870
DROP TABLE t1;
 
871
#------------------------------------------------------------------------
 
872
# 4.2 partition/subpartition numbers good and bad values and notations
 
873
#------------------------------------------------------------------------
 
874
DROP TABLE IF EXISTS t1;
 
875
# 4.2.1 partition/subpartition numbers INTEGER notation
 
876
CREATE TABLE t1 (
 
877
f_int1 INTEGER,
 
878
f_int2 INTEGER,
 
879
f_char1 CHAR(20),
 
880
f_char2 CHAR(20),
 
881
f_charbig VARCHAR(1000)
 
882
)
 
883
PARTITION BY HASH(f_int1) PARTITIONS 2;
 
884
create_command
 
885
SHOW CREATE TABLE t1;
 
886
Table   Create Table
 
887
t1      CREATE TABLE `t1` (
 
888
  `f_int1` int(11) DEFAULT NULL,
 
889
  `f_int2` int(11) DEFAULT NULL,
 
890
  `f_char1` char(20) DEFAULT NULL,
 
891
  `f_char2` char(20) DEFAULT NULL,
 
892
  `f_charbig` varchar(1000) DEFAULT NULL
 
893
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) PARTITIONS 2  */
 
894
 
 
895
unified filelist
 
896
$MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
 
897
$MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
 
898
$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYD
 
899
$MYSQLTEST_VARDIR/master-data/test/t1#P#p1.MYI
 
900
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
901
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
902
 
 
903
DROP TABLE t1;
 
904
CREATE TABLE t1 (
 
905
f_int1 INTEGER,
 
906
f_int2 INTEGER,
 
907
f_char1 CHAR(20),
 
908
f_char2 CHAR(20),
 
909
f_charbig VARCHAR(1000)
 
910
)
 
911
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
912
SUBPARTITIONS 2
 
913
(PARTITION part1 VALUES LESS THAN (10),
 
914
PARTITION part2 VALUES LESS THAN (2147483646));
 
915
create_command
 
916
SHOW CREATE TABLE t1;
 
917
Table   Create Table
 
918
t1      CREATE TABLE `t1` (
 
919
  `f_int1` int(11) DEFAULT NULL,
 
920
  `f_int2` int(11) DEFAULT NULL,
 
921
  `f_char1` char(20) DEFAULT NULL,
 
922
  `f_char2` char(20) DEFAULT NULL,
 
923
  `f_charbig` varchar(1000) DEFAULT NULL
 
924
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 2 (PARTITION part1 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION part2 VALUES LESS THAN (2147483646) ENGINE = MyISAM) */
 
925
 
 
926
unified filelist
 
927
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
 
928
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI
 
929
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYD
 
930
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp1.MYI
 
931
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD
 
932
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI
 
933
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYD
 
934
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp1.MYI
 
935
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
936
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
937
 
 
938
DROP TABLE t1;
 
939
CREATE TABLE t1 (
 
940
f_int1 INTEGER,
 
941
f_int2 INTEGER,
 
942
f_char1 CHAR(20),
 
943
f_char2 CHAR(20),
 
944
f_charbig VARCHAR(1000)
 
945
)
 
946
PARTITION BY HASH(f_int1) PARTITIONS 1;
 
947
create_command
 
948
SHOW CREATE TABLE t1;
 
949
Table   Create Table
 
950
t1      CREATE TABLE `t1` (
 
951
  `f_int1` int(11) DEFAULT NULL,
 
952
  `f_int2` int(11) DEFAULT NULL,
 
953
  `f_char1` char(20) DEFAULT NULL,
 
954
  `f_char2` char(20) DEFAULT NULL,
 
955
  `f_charbig` varchar(1000) DEFAULT NULL
 
956
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) PARTITIONS 1  */
 
957
 
 
958
unified filelist
 
959
$MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYD
 
960
$MYSQLTEST_VARDIR/master-data/test/t1#P#p0.MYI
 
961
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
962
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
963
 
 
964
DROP TABLE t1;
 
965
CREATE TABLE t1 (
 
966
f_int1 INTEGER,
 
967
f_int2 INTEGER,
 
968
f_char1 CHAR(20),
 
969
f_char2 CHAR(20),
 
970
f_charbig VARCHAR(1000)
 
971
)
 
972
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
973
SUBPARTITIONS 1
 
974
(PARTITION part1 VALUES LESS THAN (10),
 
975
PARTITION part2 VALUES LESS THAN (2147483646));
 
976
create_command
 
977
SHOW CREATE TABLE t1;
 
978
Table   Create Table
 
979
t1      CREATE TABLE `t1` (
 
980
  `f_int1` int(11) DEFAULT NULL,
 
981
  `f_int2` int(11) DEFAULT NULL,
 
982
  `f_char1` char(20) DEFAULT NULL,
 
983
  `f_char2` char(20) DEFAULT NULL,
 
984
  `f_charbig` varchar(1000) DEFAULT NULL
 
985
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int1) SUBPARTITIONS 1 (PARTITION part1 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION part2 VALUES LESS THAN (2147483646) ENGINE = MyISAM) */
 
986
 
 
987
unified filelist
 
988
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYD
 
989
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#part1sp0.MYI
 
990
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYD
 
991
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#part2sp0.MYI
 
992
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
993
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
994
 
 
995
DROP TABLE t1;
 
996
CREATE TABLE t1 (
 
997
f_int1 INTEGER,
 
998
f_int2 INTEGER,
 
999
f_char1 CHAR(20),
 
1000
f_char2 CHAR(20),
 
1001
f_charbig VARCHAR(1000)
 
1002
)
 
1003
PARTITION BY HASH(f_int1) PARTITIONS 0;
 
1004
ERROR HY000: Number of partitions = 0 is not an allowed value
 
1005
CREATE TABLE t1 (
 
1006
f_int1 INTEGER,
 
1007
f_int2 INTEGER,
 
1008
f_char1 CHAR(20),
 
1009
f_char2 CHAR(20),
 
1010
f_charbig VARCHAR(1000)
 
1011
)
 
1012
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1013
SUBPARTITIONS 0
 
1014
(PARTITION part1 VALUES LESS THAN (10),
 
1015
PARTITION part2 VALUES LESS THAN (2147483646));
 
1016
ERROR HY000: Number of subpartitions = 0 is not an allowed value
 
1017
CREATE TABLE t1 (
 
1018
f_int1 INTEGER,
 
1019
f_int2 INTEGER,
 
1020
f_char1 CHAR(20),
 
1021
f_char2 CHAR(20),
 
1022
f_charbig VARCHAR(1000)
 
1023
)
 
1024
PARTITION BY HASH(f_int1) PARTITIONS -1;
 
1025
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
 
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 RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1034
SUBPARTITIONS -1
 
1035
(PARTITION part1 VALUES LESS THAN (10),
 
1036
PARTITION part2 VALUES LESS THAN (2147483646));
 
1037
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
 
1038
(PARTITION part1 VALUES LESS THAN (10),
 
1039
PARTITION part2 VALUES LESS THAN (214' at line 9
 
1040
CREATE TABLE t1 (
 
1041
f_int1 INTEGER,
 
1042
f_int2 INTEGER,
 
1043
f_char1 CHAR(20),
 
1044
f_char2 CHAR(20),
 
1045
f_charbig VARCHAR(1000)
 
1046
)
 
1047
PARTITION BY HASH(f_int1) PARTITIONS 1000000;
 
1048
ERROR HY000: Too many partitions (including subpartitions) were defined
 
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 RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1057
SUBPARTITIONS 1000000
 
1058
(PARTITION part1 VALUES LESS THAN (10),
 
1059
PARTITION part2 VALUES LESS THAN (2147483646));
 
1060
ERROR HY000: Too many partitions (including subpartitions) were defined
 
1061
# 4.2.2 partition/subpartition numbers DECIMAL notation
 
1062
CREATE TABLE t1 (
 
1063
f_int1 INTEGER,
 
1064
f_int2 INTEGER,
 
1065
f_char1 CHAR(20),
 
1066
f_char2 CHAR(20),
 
1067
f_charbig VARCHAR(1000)
 
1068
)
 
1069
PARTITION BY HASH(f_int1) PARTITIONS 2.0;
 
1070
ERROR 42000: Only integers allowed as number here near '2.0' at line 8
 
1071
CREATE TABLE t1 (
 
1072
f_int1 INTEGER,
 
1073
f_int2 INTEGER,
 
1074
f_char1 CHAR(20),
 
1075
f_char2 CHAR(20),
 
1076
f_charbig VARCHAR(1000)
 
1077
)
 
1078
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1079
SUBPARTITIONS 2.0
 
1080
(PARTITION part1 VALUES LESS THAN (10),
 
1081
PARTITION part2 VALUES LESS THAN (2147483646));
 
1082
ERROR 42000: Only integers allowed as number here near '2.0
 
1083
(PARTITION part1 VALUES LESS THAN (10),
 
1084
PARTITION part2 VALUES LESS THAN (21' at line 9
 
1085
CREATE TABLE t1 (
 
1086
f_int1 INTEGER,
 
1087
f_int2 INTEGER,
 
1088
f_char1 CHAR(20),
 
1089
f_char2 CHAR(20),
 
1090
f_charbig VARCHAR(1000)
 
1091
)
 
1092
PARTITION BY HASH(f_int1) PARTITIONS -2.0;
 
1093
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
 
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 RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1102
SUBPARTITIONS -2.0
 
1103
(PARTITION part1 VALUES LESS THAN (10),
 
1104
PARTITION part2 VALUES LESS THAN (2147483646));
 
1105
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
 
1106
(PARTITION part1 VALUES LESS THAN (10),
 
1107
PARTITION part2 VALUES LESS THAN (2' at line 9
 
1108
CREATE TABLE t1 (
 
1109
f_int1 INTEGER,
 
1110
f_int2 INTEGER,
 
1111
f_char1 CHAR(20),
 
1112
f_char2 CHAR(20),
 
1113
f_charbig VARCHAR(1000)
 
1114
)
 
1115
PARTITION BY HASH(f_int1) PARTITIONS 0.0;
 
1116
ERROR 42000: Only integers allowed as number here near '0.0' at line 8
 
1117
CREATE TABLE t1 (
 
1118
f_int1 INTEGER,
 
1119
f_int2 INTEGER,
 
1120
f_char1 CHAR(20),
 
1121
f_char2 CHAR(20),
 
1122
f_charbig VARCHAR(1000)
 
1123
)
 
1124
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1125
SUBPARTITIONS 0.0
 
1126
(PARTITION part1 VALUES LESS THAN (10),
 
1127
PARTITION part2 VALUES LESS THAN (2147483646));
 
1128
ERROR 42000: Only integers allowed as number here near '0.0
 
1129
(PARTITION part1 VALUES LESS THAN (10),
 
1130
PARTITION part2 VALUES LESS THAN (21' at line 9
 
1131
CREATE TABLE t1 (
 
1132
f_int1 INTEGER,
 
1133
f_int2 INTEGER,
 
1134
f_char1 CHAR(20),
 
1135
f_char2 CHAR(20),
 
1136
f_charbig VARCHAR(1000)
 
1137
)
 
1138
PARTITION BY HASH(f_int1) PARTITIONS 1.6;
 
1139
ERROR 42000: Only integers allowed as number here near '1.6' at line 8
 
1140
CREATE TABLE t1 (
 
1141
f_int1 INTEGER,
 
1142
f_int2 INTEGER,
 
1143
f_char1 CHAR(20),
 
1144
f_char2 CHAR(20),
 
1145
f_charbig VARCHAR(1000)
 
1146
)
 
1147
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1148
SUBPARTITIONS 1.6
 
1149
(PARTITION part1 VALUES LESS THAN (10),
 
1150
PARTITION part2 VALUES LESS THAN (2147483646));
 
1151
ERROR 42000: Only integers allowed as number here near '1.6
 
1152
(PARTITION part1 VALUES LESS THAN (10),
 
1153
PARTITION part2 VALUES LESS THAN (21' at line 9
 
1154
CREATE TABLE t1 (
 
1155
f_int1 INTEGER,
 
1156
f_int2 INTEGER,
 
1157
f_char1 CHAR(20),
 
1158
f_char2 CHAR(20),
 
1159
f_charbig VARCHAR(1000)
 
1160
)
 
1161
PARTITION BY HASH(f_int1) PARTITIONS 999999999999999999999999999999.999999999999999999999999999999;
 
1162
ERROR 42000: Only integers allowed as number here near '999999999999999999999999999999.999999999999999999999999999999' at line 8
 
1163
CREATE TABLE t1 (
 
1164
f_int1 INTEGER,
 
1165
f_int2 INTEGER,
 
1166
f_char1 CHAR(20),
 
1167
f_char2 CHAR(20),
 
1168
f_charbig VARCHAR(1000)
 
1169
)
 
1170
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1171
SUBPARTITIONS 999999999999999999999999999999.999999999999999999999999999999
 
1172
(PARTITION part1 VALUES LESS THAN (10),
 
1173
PARTITION part2 VALUES LESS THAN (2147483646));
 
1174
ERROR 42000: Only integers allowed as number here near '999999999999999999999999999999.999999999999999999999999999999
 
1175
(PARTITION part1 V' at line 9
 
1176
CREATE TABLE t1 (
 
1177
f_int1 INTEGER,
 
1178
f_int2 INTEGER,
 
1179
f_char1 CHAR(20),
 
1180
f_char2 CHAR(20),
 
1181
f_charbig VARCHAR(1000)
 
1182
)
 
1183
PARTITION BY HASH(f_int1) PARTITIONS 0.000000000000000000000000000001;
 
1184
ERROR 42000: Only integers allowed as number here near '0.000000000000000000000000000001' at line 8
 
1185
CREATE TABLE t1 (
 
1186
f_int1 INTEGER,
 
1187
f_int2 INTEGER,
 
1188
f_char1 CHAR(20),
 
1189
f_char2 CHAR(20),
 
1190
f_charbig VARCHAR(1000)
 
1191
)
 
1192
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1193
SUBPARTITIONS 0.000000000000000000000000000001
 
1194
(PARTITION part1 VALUES LESS THAN (10),
 
1195
PARTITION part2 VALUES LESS THAN (2147483646));
 
1196
ERROR 42000: Only integers allowed as number here near '0.000000000000000000000000000001
 
1197
(PARTITION part1 VALUES LESS THAN (10),
 
1198
PARTITI' at line 9
 
1199
# 4.2.3 partition/subpartition numbers FLOAT notation
 
1200
CREATE TABLE t1 (
 
1201
f_int1 INTEGER,
 
1202
f_int2 INTEGER,
 
1203
f_char1 CHAR(20),
 
1204
f_char2 CHAR(20),
 
1205
f_charbig VARCHAR(1000)
 
1206
)
 
1207
PARTITION BY HASH(f_int1) PARTITIONS 2.0E+0;
 
1208
ERROR 42000: Only integers allowed as number here near '2.0E+0' at line 8
 
1209
CREATE TABLE t1 (
 
1210
f_int1 INTEGER,
 
1211
f_int2 INTEGER,
 
1212
f_char1 CHAR(20),
 
1213
f_char2 CHAR(20),
 
1214
f_charbig VARCHAR(1000)
 
1215
)
 
1216
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1217
SUBPARTITIONS 2.0E+0
 
1218
(PARTITION part1 VALUES LESS THAN (10),
 
1219
PARTITION part2 VALUES LESS THAN (2147483646));
 
1220
ERROR 42000: Only integers allowed as number here near '2.0E+0
 
1221
(PARTITION part1 VALUES LESS THAN (10),
 
1222
PARTITION part2 VALUES LESS THAN ' at line 9
 
1223
CREATE TABLE t1 (
 
1224
f_int1 INTEGER,
 
1225
f_int2 INTEGER,
 
1226
f_char1 CHAR(20),
 
1227
f_char2 CHAR(20),
 
1228
f_charbig VARCHAR(1000)
 
1229
)
 
1230
PARTITION BY HASH(f_int1) PARTITIONS 0.2E+1;
 
1231
ERROR 42000: Only integers allowed as number here near '0.2E+1' at line 8
 
1232
CREATE TABLE t1 (
 
1233
f_int1 INTEGER,
 
1234
f_int2 INTEGER,
 
1235
f_char1 CHAR(20),
 
1236
f_char2 CHAR(20),
 
1237
f_charbig VARCHAR(1000)
 
1238
)
 
1239
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1240
SUBPARTITIONS 0.2E+1
 
1241
(PARTITION part1 VALUES LESS THAN (10),
 
1242
PARTITION part2 VALUES LESS THAN (2147483646));
 
1243
ERROR 42000: Only integers allowed as number here near '0.2E+1
 
1244
(PARTITION part1 VALUES LESS THAN (10),
 
1245
PARTITION part2 VALUES LESS THAN ' at line 9
 
1246
CREATE TABLE t1 (
 
1247
f_int1 INTEGER,
 
1248
f_int2 INTEGER,
 
1249
f_char1 CHAR(20),
 
1250
f_char2 CHAR(20),
 
1251
f_charbig VARCHAR(1000)
 
1252
)
 
1253
PARTITION BY HASH(f_int1) PARTITIONS -2.0E+0;
 
1254
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
 
1255
CREATE TABLE t1 (
 
1256
f_int1 INTEGER,
 
1257
f_int2 INTEGER,
 
1258
f_char1 CHAR(20),
 
1259
f_char2 CHAR(20),
 
1260
f_charbig VARCHAR(1000)
 
1261
)
 
1262
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1263
SUBPARTITIONS -2.0E+0
 
1264
(PARTITION part1 VALUES LESS THAN (10),
 
1265
PARTITION part2 VALUES LESS THAN (2147483646));
 
1266
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
 
1267
(PARTITION part1 VALUES LESS THAN (10),
 
1268
PARTITION part2 VALUES LESS THAN' at line 9
 
1269
CREATE TABLE t1 (
 
1270
f_int1 INTEGER,
 
1271
f_int2 INTEGER,
 
1272
f_char1 CHAR(20),
 
1273
f_char2 CHAR(20),
 
1274
f_charbig VARCHAR(1000)
 
1275
)
 
1276
PARTITION BY HASH(f_int1) PARTITIONS 0.16E+1;
 
1277
ERROR 42000: Only integers allowed as number here near '0.16E+1' at line 8
 
1278
CREATE TABLE t1 (
 
1279
f_int1 INTEGER,
 
1280
f_int2 INTEGER,
 
1281
f_char1 CHAR(20),
 
1282
f_char2 CHAR(20),
 
1283
f_charbig VARCHAR(1000)
 
1284
)
 
1285
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1286
SUBPARTITIONS 0.16E+1
 
1287
(PARTITION part1 VALUES LESS THAN (10),
 
1288
PARTITION part2 VALUES LESS THAN (2147483646));
 
1289
ERROR 42000: Only integers allowed as number here near '0.16E+1
 
1290
(PARTITION part1 VALUES LESS THAN (10),
 
1291
PARTITION part2 VALUES LESS THAN' at line 9
 
1292
CREATE TABLE t1 (
 
1293
f_int1 INTEGER,
 
1294
f_int2 INTEGER,
 
1295
f_char1 CHAR(20),
 
1296
f_char2 CHAR(20),
 
1297
f_charbig VARCHAR(1000)
 
1298
)
 
1299
PARTITION BY HASH(f_int1) PARTITIONS 0.0E+300;
 
1300
ERROR 42000: Only integers allowed as number here near '0.0E+300' at line 8
 
1301
CREATE TABLE t1 (
 
1302
f_int1 INTEGER,
 
1303
f_int2 INTEGER,
 
1304
f_char1 CHAR(20),
 
1305
f_char2 CHAR(20),
 
1306
f_charbig VARCHAR(1000)
 
1307
)
 
1308
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1309
SUBPARTITIONS 0.0E+300
 
1310
(PARTITION part1 VALUES LESS THAN (10),
 
1311
PARTITION part2 VALUES LESS THAN (2147483646));
 
1312
ERROR 42000: Only integers allowed as number here near '0.0E+300
 
1313
(PARTITION part1 VALUES LESS THAN (10),
 
1314
PARTITION part2 VALUES LESS THA' at line 9
 
1315
CREATE TABLE t1 (
 
1316
f_int1 INTEGER,
 
1317
f_int2 INTEGER,
 
1318
f_char1 CHAR(20),
 
1319
f_char2 CHAR(20),
 
1320
f_charbig VARCHAR(1000)
 
1321
)
 
1322
PARTITION BY HASH(f_int1) PARTITIONS 1E+300;
 
1323
ERROR 42000: Only integers allowed as number here near '1E+300' at line 8
 
1324
CREATE TABLE t1 (
 
1325
f_int1 INTEGER,
 
1326
f_int2 INTEGER,
 
1327
f_char1 CHAR(20),
 
1328
f_char2 CHAR(20),
 
1329
f_charbig VARCHAR(1000)
 
1330
)
 
1331
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1332
SUBPARTITIONS 1E+300
 
1333
(PARTITION part1 VALUES LESS THAN (10),
 
1334
PARTITION part2 VALUES LESS THAN (2147483646));
 
1335
ERROR 42000: Only integers allowed as number here near '1E+300
 
1336
(PARTITION part1 VALUES LESS THAN (10),
 
1337
PARTITION part2 VALUES LESS THAN ' at line 9
 
1338
CREATE TABLE t1 (
 
1339
f_int1 INTEGER,
 
1340
f_int2 INTEGER,
 
1341
f_char1 CHAR(20),
 
1342
f_char2 CHAR(20),
 
1343
f_charbig VARCHAR(1000)
 
1344
)
 
1345
PARTITION BY HASH(f_int1) PARTITIONS 1E-300;
 
1346
ERROR 42000: Only integers allowed as number here near '1E-300' at line 8
 
1347
CREATE TABLE t1 (
 
1348
f_int1 INTEGER,
 
1349
f_int2 INTEGER,
 
1350
f_char1 CHAR(20),
 
1351
f_char2 CHAR(20),
 
1352
f_charbig VARCHAR(1000)
 
1353
)
 
1354
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1355
SUBPARTITIONS 1E-300
 
1356
(PARTITION part1 VALUES LESS THAN (10),
 
1357
PARTITION part2 VALUES LESS THAN (2147483646));
 
1358
ERROR 42000: Only integers allowed as number here near '1E-300
 
1359
(PARTITION part1 VALUES LESS THAN (10),
 
1360
PARTITION part2 VALUES LESS THAN ' at line 9
 
1361
# 4.2.4 partition/subpartition numbers STRING notation
 
1362
CREATE TABLE t1 (
 
1363
f_int1 INTEGER,
 
1364
f_int2 INTEGER,
 
1365
f_char1 CHAR(20),
 
1366
f_char2 CHAR(20),
 
1367
f_charbig VARCHAR(1000)
 
1368
)
 
1369
PARTITION BY HASH(f_int1) PARTITIONS '2';
 
1370
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
 
1371
CREATE TABLE t1 (
 
1372
f_int1 INTEGER,
 
1373
f_int2 INTEGER,
 
1374
f_char1 CHAR(20),
 
1375
f_char2 CHAR(20),
 
1376
f_charbig VARCHAR(1000)
 
1377
)
 
1378
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1379
SUBPARTITIONS '2'
 
1380
(PARTITION part1 VALUES LESS THAN (10),
 
1381
PARTITION part2 VALUES LESS THAN (2147483646));
 
1382
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'
 
1383
(PARTITION part1 VALUES LESS THAN (10),
 
1384
PARTITION part2 VALUES LESS THAN (21' at line 9
 
1385
CREATE TABLE t1 (
 
1386
f_int1 INTEGER,
 
1387
f_int2 INTEGER,
 
1388
f_char1 CHAR(20),
 
1389
f_char2 CHAR(20),
 
1390
f_charbig VARCHAR(1000)
 
1391
)
 
1392
PARTITION BY HASH(f_int1) PARTITIONS '2.0';
 
1393
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
 
1394
CREATE TABLE t1 (
 
1395
f_int1 INTEGER,
 
1396
f_int2 INTEGER,
 
1397
f_char1 CHAR(20),
 
1398
f_char2 CHAR(20),
 
1399
f_charbig VARCHAR(1000)
 
1400
)
 
1401
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1402
SUBPARTITIONS '2.0'
 
1403
(PARTITION part1 VALUES LESS THAN (10),
 
1404
PARTITION part2 VALUES LESS THAN (2147483646));
 
1405
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'
 
1406
(PARTITION part1 VALUES LESS THAN (10),
 
1407
PARTITION part2 VALUES LESS THAN (' at line 9
 
1408
CREATE TABLE t1 (
 
1409
f_int1 INTEGER,
 
1410
f_int2 INTEGER,
 
1411
f_char1 CHAR(20),
 
1412
f_char2 CHAR(20),
 
1413
f_charbig VARCHAR(1000)
 
1414
)
 
1415
PARTITION BY HASH(f_int1) PARTITIONS '0.2E+1';
 
1416
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
 
1417
CREATE TABLE t1 (
 
1418
f_int1 INTEGER,
 
1419
f_int2 INTEGER,
 
1420
f_char1 CHAR(20),
 
1421
f_char2 CHAR(20),
 
1422
f_charbig VARCHAR(1000)
 
1423
)
 
1424
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1425
SUBPARTITIONS '0.2E+1'
 
1426
(PARTITION part1 VALUES LESS THAN (10),
 
1427
PARTITION part2 VALUES LESS THAN (2147483646));
 
1428
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'
 
1429
(PARTITION part1 VALUES LESS THAN (10),
 
1430
PARTITION part2 VALUES LESS THA' at line 9
 
1431
CREATE TABLE t1 (
 
1432
f_int1 INTEGER,
 
1433
f_int2 INTEGER,
 
1434
f_char1 CHAR(20),
 
1435
f_char2 CHAR(20),
 
1436
f_charbig VARCHAR(1000)
 
1437
)
 
1438
PARTITION BY HASH(f_int1) PARTITIONS '2A';
 
1439
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
 
1440
CREATE TABLE t1 (
 
1441
f_int1 INTEGER,
 
1442
f_int2 INTEGER,
 
1443
f_char1 CHAR(20),
 
1444
f_char2 CHAR(20),
 
1445
f_charbig VARCHAR(1000)
 
1446
)
 
1447
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1448
SUBPARTITIONS '2A'
 
1449
(PARTITION part1 VALUES LESS THAN (10),
 
1450
PARTITION part2 VALUES LESS THAN (2147483646));
 
1451
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'
 
1452
(PARTITION part1 VALUES LESS THAN (10),
 
1453
PARTITION part2 VALUES LESS THAN (2' at line 9
 
1454
CREATE TABLE t1 (
 
1455
f_int1 INTEGER,
 
1456
f_int2 INTEGER,
 
1457
f_char1 CHAR(20),
 
1458
f_char2 CHAR(20),
 
1459
f_charbig VARCHAR(1000)
 
1460
)
 
1461
PARTITION BY HASH(f_int1) PARTITIONS 'A2';
 
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 ''A2'' at line 8
 
1463
CREATE TABLE t1 (
 
1464
f_int1 INTEGER,
 
1465
f_int2 INTEGER,
 
1466
f_char1 CHAR(20),
 
1467
f_char2 CHAR(20),
 
1468
f_charbig VARCHAR(1000)
 
1469
)
 
1470
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1471
SUBPARTITIONS 'A2'
 
1472
(PARTITION part1 VALUES LESS THAN (10),
 
1473
PARTITION part2 VALUES LESS THAN (2147483646));
 
1474
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'
 
1475
(PARTITION part1 VALUES LESS THAN (10),
 
1476
PARTITION part2 VALUES LESS THAN (2' at line 9
 
1477
CREATE TABLE t1 (
 
1478
f_int1 INTEGER,
 
1479
f_int2 INTEGER,
 
1480
f_char1 CHAR(20),
 
1481
f_char2 CHAR(20),
 
1482
f_charbig VARCHAR(1000)
 
1483
)
 
1484
PARTITION BY HASH(f_int1) PARTITIONS '';
 
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 '''' at line 8
 
1486
CREATE TABLE t1 (
 
1487
f_int1 INTEGER,
 
1488
f_int2 INTEGER,
 
1489
f_char1 CHAR(20),
 
1490
f_char2 CHAR(20),
 
1491
f_charbig VARCHAR(1000)
 
1492
)
 
1493
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1494
SUBPARTITIONS ''
 
1495
(PARTITION part1 VALUES LESS THAN (10),
 
1496
PARTITION part2 VALUES LESS THAN (2147483646));
 
1497
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 '''
 
1498
(PARTITION part1 VALUES LESS THAN (10),
 
1499
PARTITION part2 VALUES LESS THAN (214' at line 9
 
1500
CREATE TABLE t1 (
 
1501
f_int1 INTEGER,
 
1502
f_int2 INTEGER,
 
1503
f_char1 CHAR(20),
 
1504
f_char2 CHAR(20),
 
1505
f_charbig VARCHAR(1000)
 
1506
)
 
1507
PARTITION BY HASH(f_int1) PARTITIONS 'GARBAGE';
 
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'' at line 8
 
1509
CREATE TABLE t1 (
 
1510
f_int1 INTEGER,
 
1511
f_int2 INTEGER,
 
1512
f_char1 CHAR(20),
 
1513
f_char2 CHAR(20),
 
1514
f_charbig VARCHAR(1000)
 
1515
)
 
1516
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1517
SUBPARTITIONS 'GARBAGE'
 
1518
(PARTITION part1 VALUES LESS THAN (10),
 
1519
PARTITION part2 VALUES LESS THAN (2147483646));
 
1520
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'
 
1521
(PARTITION part1 VALUES LESS THAN (10),
 
1522
PARTITION part2 VALUES LESS TH' at line 9
 
1523
# 4.2.5 partition/subpartition numbers other notations
 
1524
CREATE TABLE t1 (
 
1525
f_int1 INTEGER,
 
1526
f_int2 INTEGER,
 
1527
f_char1 CHAR(20),
 
1528
f_char2 CHAR(20),
 
1529
f_charbig VARCHAR(1000)
 
1530
)
 
1531
PARTITION BY HASH(f_int1) PARTITIONS 2A;
 
1532
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
 
1533
CREATE TABLE t1 (
 
1534
f_int1 INTEGER,
 
1535
f_int2 INTEGER,
 
1536
f_char1 CHAR(20),
 
1537
f_char2 CHAR(20),
 
1538
f_charbig VARCHAR(1000)
 
1539
)
 
1540
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1541
SUBPARTITIONS 2A
 
1542
(PARTITION part1 VALUES LESS THAN (10),
 
1543
PARTITION part2 VALUES LESS THAN (2147483646));
 
1544
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
 
1545
(PARTITION part1 VALUES LESS THAN (10),
 
1546
PARTITION part2 VALUES LESS THAN (214' at line 9
 
1547
CREATE TABLE t1 (
 
1548
f_int1 INTEGER,
 
1549
f_int2 INTEGER,
 
1550
f_char1 CHAR(20),
 
1551
f_char2 CHAR(20),
 
1552
f_charbig VARCHAR(1000)
 
1553
)
 
1554
PARTITION BY HASH(f_int1) PARTITIONS A2;
 
1555
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
 
1556
CREATE TABLE t1 (
 
1557
f_int1 INTEGER,
 
1558
f_int2 INTEGER,
 
1559
f_char1 CHAR(20),
 
1560
f_char2 CHAR(20),
 
1561
f_charbig VARCHAR(1000)
 
1562
)
 
1563
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1564
SUBPARTITIONS A2
 
1565
(PARTITION part1 VALUES LESS THAN (10),
 
1566
PARTITION part2 VALUES LESS THAN (2147483646));
 
1567
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
 
1568
(PARTITION part1 VALUES LESS THAN (10),
 
1569
PARTITION part2 VALUES LESS THAN (214' at line 9
 
1570
CREATE TABLE t1 (
 
1571
f_int1 INTEGER,
 
1572
f_int2 INTEGER,
 
1573
f_char1 CHAR(20),
 
1574
f_char2 CHAR(20),
 
1575
f_charbig VARCHAR(1000)
 
1576
)
 
1577
PARTITION BY HASH(f_int1) PARTITIONS GARBAGE;
 
1578
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
 
1579
CREATE TABLE t1 (
 
1580
f_int1 INTEGER,
 
1581
f_int2 INTEGER,
 
1582
f_char1 CHAR(20),
 
1583
f_char2 CHAR(20),
 
1584
f_charbig VARCHAR(1000)
 
1585
)
 
1586
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1587
SUBPARTITIONS GARBAGE
 
1588
(PARTITION part1 VALUES LESS THAN (10),
 
1589
PARTITION part2 VALUES LESS THAN (2147483646));
 
1590
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
 
1591
(PARTITION part1 VALUES LESS THAN (10),
 
1592
PARTITION part2 VALUES LESS THAN' at line 9
 
1593
CREATE TABLE t1 (
 
1594
f_int1 INTEGER,
 
1595
f_int2 INTEGER,
 
1596
f_char1 CHAR(20),
 
1597
f_char2 CHAR(20),
 
1598
f_charbig VARCHAR(1000)
 
1599
)
 
1600
PARTITION BY HASH(f_int1) PARTITIONS "2";
 
1601
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
 
1602
CREATE TABLE t1 (
 
1603
f_int1 INTEGER,
 
1604
f_int2 INTEGER,
 
1605
f_char1 CHAR(20),
 
1606
f_char2 CHAR(20),
 
1607
f_charbig VARCHAR(1000)
 
1608
)
 
1609
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1610
SUBPARTITIONS "2"
 
1611
(PARTITION part1 VALUES LESS THAN (10),
 
1612
PARTITION part2 VALUES LESS THAN (2147483646));
 
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 '"2"
 
1614
(PARTITION part1 VALUES LESS THAN (10),
 
1615
PARTITION part2 VALUES LESS THAN (21' at line 9
 
1616
CREATE TABLE t1 (
 
1617
f_int1 INTEGER,
 
1618
f_int2 INTEGER,
 
1619
f_char1 CHAR(20),
 
1620
f_char2 CHAR(20),
 
1621
f_charbig VARCHAR(1000)
 
1622
)
 
1623
PARTITION BY HASH(f_int1) PARTITIONS "2A";
 
1624
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
 
1625
CREATE TABLE t1 (
 
1626
f_int1 INTEGER,
 
1627
f_int2 INTEGER,
 
1628
f_char1 CHAR(20),
 
1629
f_char2 CHAR(20),
 
1630
f_charbig VARCHAR(1000)
 
1631
)
 
1632
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1633
SUBPARTITIONS "2A"
 
1634
(PARTITION part1 VALUES LESS THAN (10),
 
1635
PARTITION part2 VALUES LESS THAN (2147483646));
 
1636
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"
 
1637
(PARTITION part1 VALUES LESS THAN (10),
 
1638
PARTITION part2 VALUES LESS THAN (2' at line 9
 
1639
CREATE TABLE t1 (
 
1640
f_int1 INTEGER,
 
1641
f_int2 INTEGER,
 
1642
f_char1 CHAR(20),
 
1643
f_char2 CHAR(20),
 
1644
f_charbig VARCHAR(1000)
 
1645
)
 
1646
PARTITION BY HASH(f_int1) PARTITIONS "A2";
 
1647
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
 
1648
CREATE TABLE t1 (
 
1649
f_int1 INTEGER,
 
1650
f_int2 INTEGER,
 
1651
f_char1 CHAR(20),
 
1652
f_char2 CHAR(20),
 
1653
f_charbig VARCHAR(1000)
 
1654
)
 
1655
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1656
SUBPARTITIONS "A2"
 
1657
(PARTITION part1 VALUES LESS THAN (10),
 
1658
PARTITION part2 VALUES LESS THAN (2147483646));
 
1659
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"
 
1660
(PARTITION part1 VALUES LESS THAN (10),
 
1661
PARTITION part2 VALUES LESS THAN (2' at line 9
 
1662
CREATE TABLE t1 (
 
1663
f_int1 INTEGER,
 
1664
f_int2 INTEGER,
 
1665
f_char1 CHAR(20),
 
1666
f_char2 CHAR(20),
 
1667
f_charbig VARCHAR(1000)
 
1668
)
 
1669
PARTITION BY HASH(f_int1) PARTITIONS "GARBAGE";
 
1670
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
 
1671
CREATE TABLE t1 (
 
1672
f_int1 INTEGER,
 
1673
f_int2 INTEGER,
 
1674
f_char1 CHAR(20),
 
1675
f_char2 CHAR(20),
 
1676
f_charbig VARCHAR(1000)
 
1677
)
 
1678
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1679
SUBPARTITIONS "GARBAGE"
 
1680
(PARTITION part1 VALUES LESS THAN (10),
 
1681
PARTITION part2 VALUES LESS THAN (2147483646));
 
1682
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"
 
1683
(PARTITION part1 VALUES LESS THAN (10),
 
1684
PARTITION part2 VALUES LESS TH' at line 9
 
1685
# 4.2.6 (negative) partition/subpartition numbers per @variables
 
1686
SET @aux = 5;
 
1687
CREATE TABLE t1 (
 
1688
f_int1 INTEGER,
 
1689
f_int2 INTEGER,
 
1690
f_char1 CHAR(20),
 
1691
f_char2 CHAR(20),
 
1692
f_charbig VARCHAR(1000)
 
1693
)
 
1694
PARTITION BY HASH(f_int1) PARTITIONS @aux;
 
1695
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
 
1696
CREATE TABLE t1 (
 
1697
f_int1 INTEGER,
 
1698
f_int2 INTEGER,
 
1699
f_char1 CHAR(20),
 
1700
f_char2 CHAR(20),
 
1701
f_charbig VARCHAR(1000)
 
1702
)
 
1703
PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1)
 
1704
SUBPARTITIONS @aux = 5
 
1705
(PARTITION part1 VALUES LESS THAN (10),
 
1706
PARTITION part2 VALUES LESS THAN (2147483646));
 
1707
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
 
1708
(PARTITION part1 VALUES LESS THAN (10),
 
1709
PARTITION part2 VALUES LESS THA' at line 9
 
1710
#------------------------------------------------------------------------
 
1711
# 4.3 Mixups of assigned partition/subpartition numbers and names
 
1712
#------------------------------------------------------------------------
 
1713
# 4.3.1 (positive) number of partition/subpartition
 
1714
#                         = number of named partition/subpartition
 
1715
CREATE TABLE t1 (
 
1716
f_int1 INTEGER,
 
1717
f_int2 INTEGER,
 
1718
f_char1 CHAR(20),
 
1719
f_char2 CHAR(20),
 
1720
f_charbig VARCHAR(1000)
 
1721
)
 
1722
PARTITION BY HASH(f_int1) PARTITIONS 2 ( PARTITION part1, PARTITION part2 ) ;
 
1723
create_command
 
1724
SHOW CREATE TABLE t1;
 
1725
Table   Create Table
 
1726
t1      CREATE TABLE `t1` (
 
1727
  `f_int1` int(11) DEFAULT NULL,
 
1728
  `f_int2` int(11) DEFAULT NULL,
 
1729
  `f_char1` char(20) DEFAULT NULL,
 
1730
  `f_char2` char(20) DEFAULT NULL,
 
1731
  `f_charbig` varchar(1000) DEFAULT NULL
 
1732
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY HASH (f_int1) (PARTITION part1 ENGINE = MyISAM, PARTITION part2 ENGINE = MyISAM) */
 
1733
 
 
1734
unified filelist
 
1735
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYD
 
1736
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1.MYI
 
1737
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYD
 
1738
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2.MYI
 
1739
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
1740
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
1741
 
 
1742
DROP TABLE t1;
 
1743
CREATE TABLE t1 (
 
1744
f_int1 INTEGER,
 
1745
f_int2 INTEGER,
 
1746
f_char1 CHAR(20),
 
1747
f_char2 CHAR(20),
 
1748
f_charbig VARCHAR(1000)
 
1749
)
 
1750
PARTITION BY RANGE(f_int1) PARTITIONS 2
 
1751
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
 
1752
( PARTITION part1 VALUES LESS THAN (1000)
 
1753
(SUBPARTITION subpart11, SUBPARTITION subpart12),
 
1754
PARTITION part2 VALUES LESS THAN (2147483646)
 
1755
(SUBPARTITION subpart21, SUBPARTITION subpart22)
 
1756
);
 
1757
create_command
 
1758
SHOW CREATE TABLE t1;
 
1759
Table   Create Table
 
1760
t1      CREATE TABLE `t1` (
 
1761
  `f_int1` int(11) DEFAULT NULL,
 
1762
  `f_int2` int(11) DEFAULT NULL,
 
1763
  `f_char1` char(20) DEFAULT NULL,
 
1764
  `f_char2` char(20) DEFAULT NULL,
 
1765
  `f_charbig` varchar(1000) DEFAULT NULL
 
1766
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (f_int1) SUBPARTITION BY HASH (f_int1) (PARTITION part1 VALUES LESS THAN (1000) (SUBPARTITION subpart11 ENGINE = MyISAM, SUBPARTITION subpart12 ENGINE = MyISAM), PARTITION part2 VALUES LESS THAN (2147483646) (SUBPARTITION subpart21 ENGINE = MyISAM, SUBPARTITION subpart22 ENGINE = MyISAM)) */
 
1767
 
 
1768
unified filelist
 
1769
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYD
 
1770
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart11.MYI
 
1771
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYD
 
1772
$MYSQLTEST_VARDIR/master-data/test/t1#P#part1#SP#subpart12.MYI
 
1773
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYD
 
1774
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart21.MYI
 
1775
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYD
 
1776
$MYSQLTEST_VARDIR/master-data/test/t1#P#part2#SP#subpart22.MYI
 
1777
$MYSQLTEST_VARDIR/master-data/test/t1.frm
 
1778
$MYSQLTEST_VARDIR/master-data/test/t1.par
 
1779
 
 
1780
DROP TABLE t1;
 
1781
# 4.3.2 (positive) number of partition/subpartition ,
 
1782
#                  0 (= no) named partition/subpartition
 
1783
#                  already checked above
 
1784
# 4.3.3 (negative) number of partitions/subpartitions
 
1785
#                         > number of named partitions/subpartitions
 
1786
CREATE TABLE t1 (
 
1787
f_int1 INTEGER,
 
1788
f_int2 INTEGER,
 
1789
f_char1 CHAR(20),
 
1790
f_char2 CHAR(20),
 
1791
f_charbig VARCHAR(1000)
 
1792
)
 
1793
PARTITION BY HASH(f_int1) PARTITIONS 2 ( PARTITION part1 ) ;
 
1794
ERROR 42000: Wrong number of partitions defined, mismatch with previous setting near ')' at line 8
 
1795
CREATE TABLE t1 (
 
1796
f_int1 INTEGER,
 
1797
f_int2 INTEGER,
 
1798
f_char1 CHAR(20),
 
1799
f_char2 CHAR(20),
 
1800
f_charbig VARCHAR(1000)
 
1801
)
 
1802
PARTITION BY RANGE(f_int1)
 
1803
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
 
1804
( PARTITION part1 VALUES LESS THAN (1000)
 
1805
(SUBPARTITION subpart11 ),
 
1806
PARTITION part2 VALUES LESS THAN (2147483646)
 
1807
(SUBPARTITION subpart21, SUBPARTITION subpart22)
 
1808
);
 
1809
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '),
 
1810
PARTITION part2 VALUES LESS THAN (2147483646)
 
1811
(SUBPARTITION subpart21, SUBPAR' at line 11
 
1812
CREATE TABLE t1 (
 
1813
f_int1 INTEGER,
 
1814
f_int2 INTEGER,
 
1815
f_char1 CHAR(20),
 
1816
f_char2 CHAR(20),
 
1817
f_charbig VARCHAR(1000)
 
1818
)
 
1819
PARTITION BY RANGE(f_int1)
 
1820
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
 
1821
( PARTITION part1 VALUES LESS THAN (1000)
 
1822
(SUBPARTITION subpart11, SUBPARTITION subpart12),
 
1823
PARTITION part2 VALUES LESS THAN (2000)
 
1824
(SUBPARTITION subpart21 ),
 
1825
PARTITION part3 VALUES LESS THAN (2147483646)
 
1826
(SUBPARTITION subpart31, SUBPARTITION subpart32)
 
1827
);
 
1828
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '),
 
1829
PARTITION part3 VALUES LESS THAN (2147483646)
 
1830
(SUBPARTITION subpart31, SUBPAR' at line 13
 
1831
CREATE TABLE t1 (
 
1832
f_int1 INTEGER,
 
1833
f_int2 INTEGER,
 
1834
f_char1 CHAR(20),
 
1835
f_char2 CHAR(20),
 
1836
f_charbig VARCHAR(1000)
 
1837
)
 
1838
PARTITION BY RANGE(f_int1) PARTITIONS 2
 
1839
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 2
 
1840
( PARTITION part1 VALUES LESS THAN (1000)
 
1841
(SUBPARTITION subpart11, SUBPARTITION subpart12),
 
1842
PARTITION part2 VALUES LESS THAN (2147483646)
 
1843
(SUBPARTITION subpart21                        )
 
1844
);
 
1845
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near ')
 
1846
)' at line 13
 
1847
# 4.3.4 (negative) number of partitions < number of named partitions
 
1848
CREATE TABLE t1 (
 
1849
f_int1 INTEGER,
 
1850
f_int2 INTEGER,
 
1851
f_char1 CHAR(20),
 
1852
f_char2 CHAR(20),
 
1853
f_charbig VARCHAR(1000)
 
1854
)
 
1855
PARTITION BY HASH(f_int1) PARTITIONS 1 ( PARTITION part1, PARTITION part2 ) ;
 
1856
ERROR 42000: Wrong number of partitions defined, mismatch with previous setting near ')' at line 8
 
1857
CREATE TABLE t1 (
 
1858
f_int1 INTEGER,
 
1859
f_int2 INTEGER,
 
1860
f_char1 CHAR(20),
 
1861
f_char2 CHAR(20),
 
1862
f_charbig VARCHAR(1000)
 
1863
)
 
1864
PARTITION BY RANGE(f_int1)
 
1865
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 1
 
1866
( PARTITION part1 VALUES LESS THAN (1000)
 
1867
(SUBPARTITION subpart11, SUBPARTITION subpart12),
 
1868
PARTITION part2 VALUES LESS THAN (2147483646)
 
1869
(SUBPARTITION subpart21, SUBPARTITION subpart22)
 
1870
);
 
1871
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '),
 
1872
PARTITION part2 VALUES LESS THAN (2147483646)
 
1873
(SUBPARTITION subpart21, SUBPAR' at line 11
 
1874
CREATE TABLE t1 (
 
1875
f_int1 INTEGER,
 
1876
f_int2 INTEGER,
 
1877
f_char1 CHAR(20),
 
1878
f_char2 CHAR(20),
 
1879
f_charbig VARCHAR(1000)
 
1880
)
 
1881
PARTITION BY RANGE(f_int1)
 
1882
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 1
 
1883
( PARTITION part1 VALUES LESS THAN (1000)
 
1884
(SUBPARTITION subpart11, SUBPARTITION subpart12),
 
1885
PARTITION part2 VALUES LESS THAN (2000)
 
1886
(SUBPARTITION subpart21                        ),
 
1887
PARTITION part3 VALUES LESS THAN (2147483646)
 
1888
(SUBPARTITION subpart31, SUBPARTITION subpart32)
 
1889
);
 
1890
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '),
 
1891
PARTITION part2 VALUES LESS THAN (2000)
 
1892
(SUBPARTITION subpart21              ' at line 11
 
1893
CREATE TABLE t1 (
 
1894
f_int1 INTEGER,
 
1895
f_int2 INTEGER,
 
1896
f_char1 CHAR(20),
 
1897
f_char2 CHAR(20),
 
1898
f_charbig VARCHAR(1000)
 
1899
)
 
1900
PARTITION BY RANGE(f_int1)
 
1901
SUBPARTITION BY HASH(f_int1) SUBPARTITIONS 1
 
1902
( PARTITION part1 VALUES LESS THAN (1000)
 
1903
(SUBPARTITION subpart11, SUBPARTITION subpart12),
 
1904
PARTITION part2 VALUES LESS THAN (2147483646)
 
1905
(SUBPARTITION subpart21, SUBPARTITION subpart22)
 
1906
);
 
1907
ERROR 42000: Wrong number of subpartitions defined, mismatch with previous setting near '),
 
1908
PARTITION part2 VALUES LESS THAN (2147483646)
 
1909
(SUBPARTITION subpart21, SUBPAR' at line 11
 
1910
 
 
1911
#========================================================================
 
1912
#  5. Checks of logical partition/subpartition name
 
1913
#     file name clashes during CREATE TABLE
 
1914
#========================================================================
 
1915
DROP TABLE IF EXISTS t1;
 
1916
#------------------------------------------------------------------------
 
1917
#  5.1 (negative) A partition/subpartition name used more than once
 
1918
#------------------------------------------------------------------------
 
1919
#  5.1.1 duplicate partition name
 
1920
CREATE TABLE t1 (
 
1921
f_int1 INTEGER,
 
1922
f_int2 INTEGER,
 
1923
f_char1 CHAR(20),
 
1924
f_char2 CHAR(20),
 
1925
f_charbig VARCHAR(1000)
 
1926
)
 
1927
PARTITION BY HASH(f_int1) (PARTITION part1, PARTITION part1);
 
1928
ERROR HY000: Duplicate partition name part1
 
1929
#  5.1.2 duplicate subpartition name
 
1930
CREATE TABLE t1 (
 
1931
f_int1 INTEGER,
 
1932
f_int2 INTEGER,
 
1933
f_char1 CHAR(20),
 
1934
f_char2 CHAR(20),
 
1935
f_charbig VARCHAR(1000)
 
1936
)
 
1937
PARTITION BY RANGE(f_int1)
 
1938
SUBPARTITION BY HASH(f_int1)
 
1939
( PARTITION part1 VALUES LESS THAN (1000)
 
1940
(SUBPARTITION subpart11, SUBPARTITION subpart11)
 
1941
);
 
1942
ERROR HY000: Duplicate partition name subpart11
 
1943
DROP VIEW  IF EXISTS v1;
 
1944
DROP TABLE IF EXISTS t1;
 
1945
DROP TABLE IF EXISTS t0_aux;
 
1946
DROP TABLE IF EXISTS t0_definition;
 
1947
DROP TABLE IF EXISTS t0_template;