~ubuntu-branches/ubuntu/precise/mysql-5.1/precise

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Norbert Tretkowski
  • Date: 2010-03-17 14:56:02 UTC
  • Revision ID: james.westby@ubuntu.com-20100317145602-x7e30l1b2sb5s6w6
Tags: upstream-5.1.45
ImportĀ upstreamĀ versionĀ 5.1.45

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
SET new=on;
 
2
DROP TABLE IF EXISTS t1;
 
3
# test without partitioning for reference
 
4
CREATE TABLE t1 (
 
5
c1 INT NOT NULL AUTO_INCREMENT,
 
6
PRIMARY KEY (c1))
 
7
ENGINE='NDB';
 
8
SHOW CREATE TABLE t1;
 
9
Table   Create Table
 
10
t1      CREATE TABLE `t1` (
 
11
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
12
  PRIMARY KEY (`c1`)
 
13
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
14
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
15
AND TABLE_NAME='t1';
 
16
AUTO_INCREMENT
 
17
1
 
18
INSERT INTO t1 VALUES (2);
 
19
INSERT INTO t1 VALUES (4);
 
20
INSERT INTO t1 VALUES (NULL);
 
21
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
22
AND TABLE_NAME='t1';
 
23
AUTO_INCREMENT
 
24
6
 
25
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
26
AND TABLE_NAME='t1';
 
27
AUTO_INCREMENT
 
28
6
 
29
INSERT INTO t1 VALUES (0);
 
30
INSERT INTO t1 VALUES (5), (16);
 
31
INSERT INTO t1 VALUES (17);
 
32
INSERT INTO t1 VALUES (19), (NULL);
 
33
INSERT INTO t1 VALUES (NULL), (10), (NULL);
 
34
INSERT INTO t1 VALUES (NULL);
 
35
SET INSERT_ID = 30;
 
36
INSERT INTO t1 VALUES (NULL);
 
37
UPDATE t1 SET c1 = 50 WHERE c1 = 17;
 
38
UPDATE t1 SET c1 = 51 WHERE c1 = 19;
 
39
FLUSH TABLES;
 
40
UPDATE t1 SET c1 = 40 WHERE c1 = 50;
 
41
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
42
  AND TABLE_NAME='t1';
 
43
AUTO_INCREMENT
 
44
52
 
45
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
 
46
Warnings:
 
47
Warning 1048    Column 'c1' cannot be null
 
48
INSERT INTO t1 VALUES (NULL);
 
49
INSERT INTO t1 VALUES (NULL);
 
50
SELECT * FROM t1 ORDER BY c1;
 
51
c1
 
52
0
 
53
2
 
54
5
 
55
6
 
56
10
 
57
20
 
58
21
 
59
22
 
60
23
 
61
30
 
62
40
 
63
51
 
64
52
 
65
53
 
66
DROP TABLE t1;
 
67
CREATE TABLE t1 (
 
68
c1 INT NOT NULL AUTO_INCREMENT,
 
69
PRIMARY KEY (c1))
 
70
ENGINE='NDB';
 
71
SHOW CREATE TABLE t1;
 
72
Table   Create Table
 
73
t1      CREATE TABLE `t1` (
 
74
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
75
  PRIMARY KEY (`c1`)
 
76
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
77
FLUSH TABLE;
 
78
SHOW CREATE TABLE t1;
 
79
Table   Create Table
 
80
t1      CREATE TABLE `t1` (
 
81
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
82
  PRIMARY KEY (`c1`)
 
83
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
84
INSERT INTO t1 VALUES (4);
 
85
FLUSH TABLE;
 
86
SHOW CREATE TABLE t1;
 
87
Table   Create Table
 
88
t1      CREATE TABLE `t1` (
 
89
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
90
  PRIMARY KEY (`c1`)
 
91
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
92
INSERT INTO t1 VALUES (NULL);
 
93
FLUSH TABLE;
 
94
SHOW CREATE TABLE t1;
 
95
Table   Create Table
 
96
t1      CREATE TABLE `t1` (
 
97
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
98
  PRIMARY KEY (`c1`)
 
99
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
100
DELETE FROM t1;
 
101
INSERT INTO t1 VALUES (NULL);
 
102
SHOW CREATE TABLE t1;
 
103
Table   Create Table
 
104
t1      CREATE TABLE `t1` (
 
105
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
106
  PRIMARY KEY (`c1`)
 
107
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
108
SELECT * FROM t1 ORDER BY c1;
 
109
c1
 
110
6
 
111
TRUNCATE TABLE t1;
 
112
INSERT INTO t1 VALUES (NULL);
 
113
SHOW CREATE TABLE t1;
 
114
Table   Create Table
 
115
t1      CREATE TABLE `t1` (
 
116
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
117
  PRIMARY KEY (`c1`)
 
118
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
119
SELECT * FROM t1 ORDER BY c1;
 
120
c1
 
121
1
 
122
INSERT INTO t1 VALUES (100);
 
123
INSERT INTO t1 VALUES (NULL);
 
124
DELETE FROM t1 WHERE c1 >= 100;
 
125
OPTIMIZE TABLE t1;
 
126
Table   Op      Msg_type        Msg_text
 
127
test.t1 optimize        note    The storage engine for the table doesn't support optimize
 
128
SHOW CREATE TABLE t1;
 
129
Table   Create Table
 
130
t1      CREATE TABLE `t1` (
 
131
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
132
  PRIMARY KEY (`c1`)
 
133
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
134
DROP TABLE t1;
 
135
# Simple test with NULL
 
136
CREATE TABLE t1 (
 
137
c1 INT NOT NULL AUTO_INCREMENT,
 
138
PRIMARY KEY (c1))
 
139
ENGINE='NDB'
 
140
PARTITION BY HASH(c1)
 
141
PARTITIONS 2;
 
142
INSERT INTO t1 VALUES (NULL);
 
143
SHOW CREATE TABLE t1;
 
144
Table   Create Table
 
145
t1      CREATE TABLE `t1` (
 
146
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
147
  PRIMARY KEY (`c1`)
 
148
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
149
/*!50100 PARTITION BY HASH (c1)
 
150
PARTITIONS 2 */
 
151
SELECT * FROM t1;
 
152
c1
 
153
1
 
154
DROP TABLE t1;
 
155
# Test with sql_mode and first insert as 0
 
156
CREATE TABLE t1 (
 
157
c1 INT,
 
158
c2 INT NOT NULL AUTO_INCREMENT,
 
159
PRIMARY KEY (c2))
 
160
ENGINE='NDB'
 
161
PARTITION BY HASH(c2)
 
162
PARTITIONS 2;
 
163
INSERT INTO t1 VALUES (1, NULL);
 
164
INSERT INTO t1 VALUES (1, 1), (99, 99);
 
165
INSERT INTO t1 VALUES (1, NULL);
 
166
SET @@session.sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
 
167
INSERT INTO t1 VALUES (1, 0);
 
168
SELECT * FROM t1 ORDER BY c1, c2;
 
169
c1      c2
 
170
1       0
 
171
1       1
 
172
1       100
 
173
DROP TABLE t1;
 
174
CREATE TABLE t1 (
 
175
c1 INT,
 
176
c2 INT NOT NULL AUTO_INCREMENT,
 
177
PRIMARY KEY (c2))
 
178
ENGINE='NDB'
 
179
PARTITION BY HASH(c2)
 
180
PARTITIONS 2;
 
181
INSERT INTO t1 VALUES (1, 0);
 
182
INSERT INTO t1 VALUES (1, 1), (1, NULL);
 
183
INSERT INTO t1 VALUES (2, NULL), (4, 7);
 
184
INSERT INTO t1 VALUES (1, NULL);
 
185
SELECT * FROM t1 ORDER BY c1, c2;
 
186
c1      c2
 
187
1       0
 
188
1       1
 
189
1       2
 
190
1       8
 
191
2       3
 
192
4       7
 
193
SET @@session.sql_mode = '';
 
194
DROP TABLE t1;
 
195
# Simple test with NULL, 0 and explicit values both incr. and desc.
 
196
CREATE TABLE t1 (
 
197
c1 INT NOT NULL AUTO_INCREMENT,
 
198
PRIMARY KEY (c1))
 
199
ENGINE='NDB'
 
200
PARTITION BY HASH(c1)
 
201
PARTITIONS 2;
 
202
INSERT INTO t1 VALUES (2), (4), (NULL);
 
203
INSERT INTO t1 VALUES (0);
 
204
INSERT INTO t1 VALUES (5), (16);
 
205
INSERT INTO t1 VALUES (17), (19), (NULL);
 
206
INSERT INTO t1 VALUES (NULL), (10), (NULL);
 
207
INSERT INTO t1 VALUES (NULL), (9);
 
208
INSERT INTO t1 VALUES (59), (55);
 
209
INSERT INTO t1 VALUES (NULL), (90);
 
210
INSERT INTO t1 VALUES (NULL);
 
211
UPDATE t1 SET c1 = 150 WHERE c1 = 17;
 
212
UPDATE t1 SET c1 = 151 WHERE c1 = 19;
 
213
FLUSH TABLES;
 
214
UPDATE t1 SET c1 = 140 WHERE c1 = 150;
 
215
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
216
  AND TABLE_NAME='t1';
 
217
AUTO_INCREMENT
 
218
152
 
219
UPDATE t1 SET c1 = NULL WHERE c1 = 4;
 
220
Warnings:
 
221
Warning 1048    Column 'c1' cannot be null
 
222
INSERT INTO t1 VALUES (NULL);
 
223
INSERT INTO t1 VALUES (NULL);
 
224
SELECT * FROM t1 ORDER BY c1;
 
225
c1
 
226
0
 
227
2
 
228
5
 
229
6
 
230
9
 
231
10
 
232
20
 
233
21
 
234
22
 
235
23
 
236
55
 
237
59
 
238
60
 
239
90
 
240
91
 
241
140
 
242
151
 
243
152
 
244
153
 
245
DROP TABLE t1;
 
246
# Test with auto_increment_increment and auto_increment_offset.
 
247
CREATE TABLE t1 (
 
248
c1 INT NOT NULL AUTO_INCREMENT,
 
249
PRIMARY KEY (c1))
 
250
ENGINE='NDB'
 
251
PARTITION BY HASH(c1)
 
252
PARTITIONS 2;
 
253
SET @@session.auto_increment_increment = 10;
 
254
SET @@session.auto_increment_offset = 5;
 
255
INSERT INTO t1 VALUES (1);
 
256
INSERT INTO t1 VALUES (NULL), (NULL), (NULL);
 
257
SET @@session.auto_increment_increment = 5;
 
258
SET @@session.auto_increment_offset = 3;
 
259
INSERT INTO t1 VALUES (NULL);
 
260
INSERT INTO t1 VALUES (33 + 1);
 
261
INSERT INTO t1 VALUES (NULL);
 
262
INSERT INTO t1 VALUES (38 + 2);
 
263
INSERT INTO t1 VALUES (NULL);
 
264
INSERT INTO t1 VALUES (43 + 3);
 
265
INSERT INTO t1 VALUES (NULL);
 
266
INSERT INTO t1 VALUES (48 + 4);
 
267
INSERT INTO t1 VALUES (NULL);
 
268
INSERT INTO t1 VALUES (53 + 5);
 
269
INSERT INTO t1 VALUES (NULL);
 
270
INSERT INTO t1 VALUES (63 + 6);
 
271
INSERT INTO t1 VALUES (NULL);
 
272
SET @@session.auto_increment_increment = 1;
 
273
SET @@session.auto_increment_offset = 1;
 
274
SELECT * FROM t1 ORDER BY c1;
 
275
c1
 
276
1
 
277
5
 
278
15
 
279
25
 
280
33
 
281
34
 
282
38
 
283
40
 
284
43
 
285
46
 
286
48
 
287
52
 
288
53
 
289
58
 
290
63
 
291
69
 
292
73
 
293
DROP TABLE t1;
 
294
# Test reported auto_increment value
 
295
CREATE TABLE t1 (
 
296
c1 INT NOT NULL AUTO_INCREMENT,
 
297
PRIMARY KEY (c1))
 
298
ENGINE='NDB'
 
299
PARTITION BY HASH (c1)
 
300
PARTITIONS 2;
 
301
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
302
AND TABLE_NAME='t1';
 
303
AUTO_INCREMENT
 
304
1
 
305
INSERT INTO t1 VALUES (2);
 
306
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
307
AND TABLE_NAME='t1';
 
308
AUTO_INCREMENT
 
309
3
 
310
INSERT INTO t1 VALUES (4);
 
311
INSERT INTO t1 VALUES (NULL);
 
312
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
313
AND TABLE_NAME='t1';
 
314
AUTO_INCREMENT
 
315
6
 
316
INSERT INTO t1 VALUES (NULL);
 
317
INSERT INTO t1 VALUES (17);
 
318
INSERT INTO t1 VALUES (19);
 
319
INSERT INTO t1 VALUES (NULL);
 
320
INSERT INTO t1 VALUES (NULL);
 
321
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
322
AND TABLE_NAME='t1';
 
323
AUTO_INCREMENT
 
324
22
 
325
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
326
AND TABLE_NAME='t1';
 
327
AUTO_INCREMENT
 
328
22
 
329
INSERT INTO t1 VALUES (10);
 
330
SELECT * FROM t1 ORDER BY c1;
 
331
c1
 
332
2
 
333
4
 
334
5
 
335
6
 
336
10
 
337
17
 
338
19
 
339
20
 
340
21
 
341
INSERT INTO t1 VALUES (NULL);
 
342
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test'
 
343
AND TABLE_NAME='t1';
 
344
AUTO_INCREMENT
 
345
23
 
346
INSERT INTO t1 VALUES (NULL);
 
347
INSERT INTO t1 VALUES (15);
 
348
INSERT INTO t1 VALUES (NULL);
 
349
SELECT * FROM t1 ORDER BY c1;
 
350
c1
 
351
2
 
352
4
 
353
5
 
354
6
 
355
10
 
356
15
 
357
17
 
358
19
 
359
20
 
360
21
 
361
22
 
362
23
 
363
24
 
364
INSERT INTO t1 VALUES (NULL);
 
365
DELETE FROM t1;
 
366
INSERT INTO t1 VALUES (NULL);
 
367
SHOW CREATE TABLE t1;
 
368
Table   Create Table
 
369
t1      CREATE TABLE `t1` (
 
370
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
371
  PRIMARY KEY (`c1`)
 
372
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
373
/*!50100 PARTITION BY HASH (c1)
 
374
PARTITIONS 2 */
 
375
SELECT * FROM t1 ORDER BY c1;
 
376
c1
 
377
26
 
378
TRUNCATE TABLE t1;
 
379
INSERT INTO t1 VALUES (NULL);
 
380
SHOW CREATE TABLE t1;
 
381
Table   Create Table
 
382
t1      CREATE TABLE `t1` (
 
383
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
384
  PRIMARY KEY (`c1`)
 
385
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
386
/*!50100 PARTITION BY HASH (c1)
 
387
PARTITIONS 2 */
 
388
SELECT * FROM t1 ORDER BY c1;
 
389
c1
 
390
1
 
391
INSERT INTO t1 VALUES (100);
 
392
INSERT INTO t1 VALUES (NULL);
 
393
DELETE FROM t1 WHERE c1 >= 100;
 
394
OPTIMIZE TABLE t1;
 
395
Table   Op      Msg_type        Msg_text
 
396
test.t1 optimize        note    The storage engine for the table doesn't support optimize
 
397
SHOW CREATE TABLE t1;
 
398
Table   Create Table
 
399
t1      CREATE TABLE `t1` (
 
400
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
401
  PRIMARY KEY (`c1`)
 
402
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
403
/*!50100 PARTITION BY HASH (c1)
 
404
PARTITIONS 2 */
 
405
DROP TABLE t1;
 
406
# Test with two threads
 
407
# con default
 
408
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
 
409
ENGINE = 'NDB'
 
410
PARTITION BY HASH(c1)
 
411
PARTITIONS 2;
 
412
INSERT INTO t1 (c1) VALUES (2);
 
413
INSERT INTO t1 (c1) VALUES (4);
 
414
# con1
 
415
INSERT INTO t1 (c1) VALUES (NULL);
 
416
INSERT INTO t1 (c1) VALUES (10);
 
417
# con default
 
418
INSERT INTO t1 (c1) VALUES (NULL);
 
419
INSERT INTO t1 (c1) VALUES (NULL);
 
420
INSERT INTO t1 (c1) VALUES (19);
 
421
INSERT INTO t1 (c1) VALUES (21);
 
422
# con1
 
423
INSERT INTO t1 (c1) VALUES (NULL);
 
424
# con default
 
425
INSERT INTO t1 (c1) VALUES (16);
 
426
# con1
 
427
INSERT INTO t1 (c1) VALUES (NULL);
 
428
# con default
 
429
INSERT INTO t1 (c1) VALUES (NULL);
 
430
SELECT * FROM t1 ORDER BY c1;
 
431
c1
 
432
2
 
433
4
 
434
5
 
435
10
 
436
11
 
437
12
 
438
16
 
439
19
 
440
21
 
441
22
 
442
23
 
443
24
 
444
DROP TABLE t1;
 
445
# Test with two threads + start transaction NO PARTITIONING
 
446
# con default
 
447
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
 
448
ENGINE = 'NDB';
 
449
START TRANSACTION;
 
450
INSERT INTO t1 (c1) VALUES (2);
 
451
INSERT INTO t1 (c1) VALUES (4);
 
452
# con1
 
453
START TRANSACTION;
 
454
INSERT INTO t1 (c1) VALUES (NULL);
 
455
INSERT INTO t1 (c1) VALUES (10);
 
456
# con default
 
457
INSERT INTO t1 (c1) VALUES (NULL);
 
458
INSERT INTO t1 (c1) VALUES (NULL);
 
459
INSERT INTO t1 (c1) VALUES (19);
 
460
INSERT INTO t1 (c1) VALUES (21);
 
461
# con1
 
462
INSERT INTO t1 (c1) VALUES (NULL);
 
463
# con default
 
464
INSERT INTO t1 (c1) VALUES (16);
 
465
# con1
 
466
INSERT INTO t1 (c1) VALUES (NULL);
 
467
SELECT * FROM t1 ORDER BY c1;
 
468
c1
 
469
5
 
470
10
 
471
22
 
472
23
 
473
COMMIT;
 
474
SELECT * FROM t1 ORDER BY c1;
 
475
c1
 
476
5
 
477
10
 
478
22
 
479
23
 
480
# con default
 
481
INSERT INTO t1 (c1) VALUES (NULL);
 
482
SELECT * FROM t1 ORDER BY c1;
 
483
c1
 
484
2
 
485
4
 
486
5
 
487
10
 
488
11
 
489
12
 
490
16
 
491
19
 
492
21
 
493
22
 
494
23
 
495
24
 
496
COMMIT;
 
497
SELECT * FROM t1 ORDER BY c1;
 
498
c1
 
499
2
 
500
4
 
501
5
 
502
10
 
503
11
 
504
12
 
505
16
 
506
19
 
507
21
 
508
22
 
509
23
 
510
24
 
511
DROP TABLE t1;
 
512
# Test with two threads + start transaction
 
513
# con default
 
514
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
 
515
ENGINE = 'NDB'
 
516
PARTITION BY HASH(c1)
 
517
PARTITIONS 2;
 
518
START TRANSACTION;
 
519
INSERT INTO t1 (c1) VALUES (2);
 
520
INSERT INTO t1 (c1) VALUES (4);
 
521
# con1
 
522
START TRANSACTION;
 
523
INSERT INTO t1 (c1) VALUES (NULL), (10);
 
524
# con default
 
525
INSERT INTO t1 (c1) VALUES (NULL), (NULL), (19);
 
526
INSERT INTO t1 (c1) VALUES (21);
 
527
# con1
 
528
INSERT INTO t1 (c1) VALUES (NULL);
 
529
# con default
 
530
INSERT INTO t1 (c1) VALUES (16);
 
531
# con1
 
532
INSERT INTO t1 (c1) VALUES (NULL);
 
533
SELECT * FROM t1 ORDER BY c1;
 
534
c1
 
535
5
 
536
10
 
537
22
 
538
23
 
539
COMMIT;
 
540
SELECT * FROM t1 ORDER BY c1;
 
541
c1
 
542
5
 
543
10
 
544
22
 
545
23
 
546
# con default
 
547
INSERT INTO t1 (c1) VALUES (NULL);
 
548
SELECT * FROM t1 ORDER BY c1;
 
549
c1
 
550
2
 
551
4
 
552
5
 
553
10
 
554
11
 
555
12
 
556
16
 
557
19
 
558
21
 
559
22
 
560
23
 
561
24
 
562
COMMIT;
 
563
SELECT * FROM t1 ORDER BY c1;
 
564
c1
 
565
2
 
566
4
 
567
5
 
568
10
 
569
11
 
570
12
 
571
16
 
572
19
 
573
21
 
574
22
 
575
23
 
576
24
 
577
DROP TABLE t1;
 
578
# Test with another column after
 
579
CREATE TABLE t1 (
 
580
c1 INT NOT NULL AUTO_INCREMENT,
 
581
c2 INT,
 
582
PRIMARY KEY (c1,c2))
 
583
ENGINE = 'NDB'
 
584
PARTITION BY HASH(c2)
 
585
PARTITIONS 2;
 
586
INSERT INTO t1 VALUES (1, 0);
 
587
INSERT INTO t1 VALUES (1, 1);
 
588
INSERT INTO t1 VALUES (NULL, 1), (NULL, 2), (NULL, 3);
 
589
INSERT INTO t1 VALUES (NULL, 3);
 
590
INSERT INTO t1 VALUES (2, 0), (NULL, 2);
 
591
INSERT INTO t1 VALUES (2, 2);
 
592
INSERT INTO t1 VALUES (2, 22);
 
593
INSERT INTO t1 VALUES (NULL, 2);
 
594
SELECT * FROM t1 ORDER BY c1,c2;
 
595
c1      c2
 
596
1       0
 
597
1       1
 
598
2       0
 
599
2       1
 
600
2       2
 
601
2       22
 
602
3       2
 
603
4       3
 
604
5       3
 
605
6       2
 
606
7       2
 
607
DROP TABLE t1;
 
608
# Test with another column before
 
609
CREATE TABLE t1 (
 
610
c1 INT,
 
611
c2 INT NOT NULL AUTO_INCREMENT,
 
612
PRIMARY KEY (c2))
 
613
ENGINE = 'NDB'
 
614
PARTITION BY HASH(c2)
 
615
PARTITIONS 2;
 
616
INSERT INTO t1 VALUES (1, 0);
 
617
INSERT INTO t1 VALUES (1, 1);
 
618
INSERT INTO t1 VALUES (1, NULL);
 
619
INSERT INTO t1 VALUES (2, NULL), (3, 11), (3, NULL), (2, 0);
 
620
INSERT INTO t1 VALUES (2, NULL);
 
621
INSERT INTO t1 VALUES (2, 2);
 
622
INSERT INTO t1 VALUES (2, 22);
 
623
INSERT INTO t1 VALUES (2, NULL);
 
624
SELECT * FROM t1 ORDER BY c1,c2;
 
625
c1      c2
 
626
1       1
 
627
1       2
 
628
2       3
 
629
2       13
 
630
2       14
 
631
2       22
 
632
2       23
 
633
3       11
 
634
3       12
 
635
DROP TABLE t1;
 
636
# Test with auto_increment on secondary column in multi-column-index
 
637
CREATE TABLE t1 (
 
638
c1 INT,
 
639
c2 INT NOT NULL AUTO_INCREMENT,
 
640
PRIMARY KEY (c1,c2))
 
641
ENGINE = 'NDB'
 
642
PARTITION BY HASH(c2)
 
643
PARTITIONS 2;
 
644
INSERT INTO t1 VALUES (1, 0);
 
645
INSERT INTO t1 VALUES (1, 1);
 
646
INSERT INTO t1 VALUES (1, NULL);
 
647
INSERT INTO t1 VALUES (2, NULL);
 
648
INSERT INTO t1 VALUES (3, NULL);
 
649
INSERT INTO t1 VALUES (3, NULL), (2, 0), (2, NULL);
 
650
INSERT INTO t1 VALUES (2, 2);
 
651
# ERROR (only OK if Blackhole/NDB) should give ER_DUP_KEY or ER_DUP_ENTRY
 
652
# mysql_errno: 0
 
653
INSERT INTO t1 VALUES (2, 22), (2, NULL);
 
654
SELECT * FROM t1 ORDER BY c1,c2;
 
655
c1      c2
 
656
1       1
 
657
1       2
 
658
2       2
 
659
2       3
 
660
2       6
 
661
2       7
 
662
2       22
 
663
2       23
 
664
3       4
 
665
3       5
 
666
DROP TABLE t1;
 
667
# Test AUTO_INCREMENT in CREATE
 
668
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
 
669
ENGINE = 'NDB'
 
670
AUTO_INCREMENT = 15
 
671
PARTITION BY HASH(c1)
 
672
PARTITIONS 2;
 
673
SHOW CREATE TABLE t1;
 
674
Table   Create Table
 
675
t1      CREATE TABLE `t1` (
 
676
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
677
  PRIMARY KEY (`c1`)
 
678
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
679
/*!50100 PARTITION BY HASH (c1)
 
680
PARTITIONS 2 */
 
681
INSERT INTO t1 (c1) VALUES (4);
 
682
SHOW CREATE TABLE t1;
 
683
Table   Create Table
 
684
t1      CREATE TABLE `t1` (
 
685
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
686
  PRIMARY KEY (`c1`)
 
687
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
688
/*!50100 PARTITION BY HASH (c1)
 
689
PARTITIONS 2 */
 
690
INSERT INTO t1 (c1) VALUES (0);
 
691
SHOW CREATE TABLE t1;
 
692
Table   Create Table
 
693
t1      CREATE TABLE `t1` (
 
694
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
695
  PRIMARY KEY (`c1`)
 
696
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
697
/*!50100 PARTITION BY HASH (c1)
 
698
PARTITIONS 2 */
 
699
INSERT INTO t1 (c1) VALUES (NULL);
 
700
SHOW CREATE TABLE t1;
 
701
Table   Create Table
 
702
t1      CREATE TABLE `t1` (
 
703
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
704
  PRIMARY KEY (`c1`)
 
705
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
706
/*!50100 PARTITION BY HASH (c1)
 
707
PARTITIONS 2 */
 
708
SELECT * FROM t1 ORDER BY c1;
 
709
c1
 
710
4
 
711
15
 
712
16
 
713
# Test sql_mode 'NO_AUTO_VALUE_ON_ZERO'
 
714
SET @@session.sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
 
715
INSERT INTO t1 (c1) VALUES (300);
 
716
SHOW CREATE TABLE t1;
 
717
Table   Create Table
 
718
t1      CREATE TABLE `t1` (
 
719
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
720
  PRIMARY KEY (`c1`)
 
721
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
722
/*!50100 PARTITION BY HASH (c1)
 
723
PARTITIONS 2 */
 
724
INSERT INTO t1 (c1) VALUES (0);
 
725
SHOW CREATE TABLE t1;
 
726
Table   Create Table
 
727
t1      CREATE TABLE `t1` (
 
728
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
729
  PRIMARY KEY (`c1`)
 
730
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
731
/*!50100 PARTITION BY HASH (c1)
 
732
PARTITIONS 2 */
 
733
INSERT INTO t1 (c1) VALUES (NULL);
 
734
SHOW CREATE TABLE t1;
 
735
Table   Create Table
 
736
t1      CREATE TABLE `t1` (
 
737
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
738
  PRIMARY KEY (`c1`)
 
739
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
740
/*!50100 PARTITION BY HASH (c1)
 
741
PARTITIONS 2 */
 
742
SELECT * FROM t1 ORDER BY c1;
 
743
c1
 
744
0
 
745
4
 
746
15
 
747
16
 
748
300
 
749
301
 
750
SET @@session.sql_mode = '';
 
751
DROP TABLE t1;
 
752
# Test SET INSERT_ID
 
753
CREATE TABLE t1 (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (c1))
 
754
ENGINE = 'NDB'
 
755
PARTITION BY HASH(c1)
 
756
PARTITIONS 2;
 
757
SHOW CREATE TABLE t1;
 
758
Table   Create Table
 
759
t1      CREATE TABLE `t1` (
 
760
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
761
  PRIMARY KEY (`c1`)
 
762
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
763
/*!50100 PARTITION BY HASH (c1)
 
764
PARTITIONS 2 */
 
765
INSERT INTO t1 (c1) VALUES (NULL);
 
766
SHOW CREATE TABLE t1;
 
767
Table   Create Table
 
768
t1      CREATE TABLE `t1` (
 
769
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
770
  PRIMARY KEY (`c1`)
 
771
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
772
/*!50100 PARTITION BY HASH (c1)
 
773
PARTITIONS 2 */
 
774
SELECT * FROM t1;
 
775
c1
 
776
1
 
777
SET INSERT_ID = 23;
 
778
SHOW CREATE TABLE t1;
 
779
Table   Create Table
 
780
t1      CREATE TABLE `t1` (
 
781
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
782
  PRIMARY KEY (`c1`)
 
783
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
784
/*!50100 PARTITION BY HASH (c1)
 
785
PARTITIONS 2 */
 
786
INSERT INTO t1 (c1) VALUES (NULL);
 
787
SHOW CREATE TABLE t1;
 
788
Table   Create Table
 
789
t1      CREATE TABLE `t1` (
 
790
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
791
  PRIMARY KEY (`c1`)
 
792
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
793
/*!50100 PARTITION BY HASH (c1)
 
794
PARTITIONS 2 */
 
795
SELECT * FROM t1 ORDER BY c1;
 
796
c1
 
797
1
 
798
23
 
799
DROP TABLE t1;
 
800
# Testing with FLUSH TABLE
 
801
CREATE TABLE t1 (
 
802
c1 INT NOT NULL AUTO_INCREMENT,
 
803
PRIMARY KEY (c1))
 
804
ENGINE='NDB'
 
805
PARTITION BY HASH(c1)
 
806
PARTITIONS 2;
 
807
SHOW CREATE TABLE t1;
 
808
Table   Create Table
 
809
t1      CREATE TABLE `t1` (
 
810
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
811
  PRIMARY KEY (`c1`)
 
812
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
813
/*!50100 PARTITION BY HASH (c1)
 
814
PARTITIONS 2 */
 
815
FLUSH TABLE;
 
816
SHOW CREATE TABLE t1;
 
817
Table   Create Table
 
818
t1      CREATE TABLE `t1` (
 
819
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
820
  PRIMARY KEY (`c1`)
 
821
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
822
/*!50100 PARTITION BY HASH (c1)
 
823
PARTITIONS 2 */
 
824
INSERT INTO t1 VALUES (4);
 
825
FLUSH TABLE;
 
826
SHOW CREATE TABLE t1;
 
827
Table   Create Table
 
828
t1      CREATE TABLE `t1` (
 
829
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
830
  PRIMARY KEY (`c1`)
 
831
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
832
/*!50100 PARTITION BY HASH (c1)
 
833
PARTITIONS 2 */
 
834
INSERT INTO t1 VALUES (NULL);
 
835
FLUSH TABLE;
 
836
SHOW CREATE TABLE t1;
 
837
Table   Create Table
 
838
t1      CREATE TABLE `t1` (
 
839
  `c1` int(11) NOT NULL AUTO_INCREMENT,
 
840
  PRIMARY KEY (`c1`)
 
841
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
 
842
/*!50100 PARTITION BY HASH (c1)
 
843
PARTITIONS 2 */
 
844
SELECT * FROM t1 ORDER BY c1;
 
845
c1
 
846
4
 
847
5
 
848
DROP TABLE t1;
 
849
#############################################################################
 
850
# Bug #45823 - Assertion failure in file row/row0mysql.c line 1386
 
851
# Bug #43988 - AUTO_INCREMENT errors with partitioned InnoDB tables in 5.1.31
 
852
##############################################################################
 
853
# Inserting negative autoincrement values into a partition table (partitions >= 4)
 
854
CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1),
 
855
c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4;
 
856
INSERT INTO t(c2) VALUES (10);
 
857
INSERT INTO t(c2) VALUES (20);
 
858
INSERT INTO t VALUES (-1,-10);
 
859
INSERT INTO t(c2) VALUES (30);
 
860
INSERT INTO t(c2) VALUES (40);
 
861
SELECT * FROM t ORDER BY c1 ASC;
 
862
c1      c2
 
863
-1      -10
 
864
1       10
 
865
2       20
 
866
3       30
 
867
4       40
 
868
DROP TABLE t;
 
869
# Reading from a partition table (partitions >= 2 ) after inserting a negative
 
870
# value into the auto increment column
 
871
CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1),
 
872
c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 2;
 
873
INSERT INTO t VALUES (-2,-20);
 
874
INSERT INTO t(c2) VALUES (30);
 
875
SELECT * FROM t ORDER BY c1 ASC;
 
876
c1      c2
 
877
-2      -20
 
878
1       30
 
879
DROP TABLE t;
 
880
# Inserting negative auto increment value into a partition table (partitions >= 2)
 
881
# auto increment value > 2.
 
882
CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1),
 
883
c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 2;
 
884
INSERT INTO t VALUES (-4,-20);
 
885
INSERT INTO t(c2) VALUES (30);
 
886
INSERT INTO t(c2) VALUES (40);
 
887
SELECT * FROM t ORDER BY c1 ASC;
 
888
c1      c2
 
889
-4      -20
 
890
1       30
 
891
2       40
 
892
DROP TABLE t;
 
893
# Inserting -1 into autoincrement column of a partition table (partition >= 4)
 
894
CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1),
 
895
c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4;
 
896
INSERT INTO t(c2) VALUES (10);
 
897
INSERT INTO t(c2) VALUES (20);
 
898
INSERT INTO t VALUES (-1,-10);
 
899
SELECT * FROM t ORDER BY c1 ASC;
 
900
c1      c2
 
901
-1      -10
 
902
1       10
 
903
2       20
 
904
INSERT INTO t(c2) VALUES (30);
 
905
SELECT * FROM t ORDER BY c1 ASC;
 
906
c1      c2
 
907
-1      -10
 
908
1       10
 
909
2       20
 
910
3       30
 
911
DROP TABLE t;
 
912
# Deleting from an auto increment table after inserting negative values
 
913
CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1),
 
914
c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4;
 
915
INSERT INTO t(c2) VALUES (10);
 
916
INSERT INTO t(c2) VALUES (20);
 
917
INSERT INTO t VALUES (-1,-10);
 
918
INSERT INTO t(c2) VALUES (30);
 
919
INSERT INTO t VALUES (-3,-20);
 
920
INSERT INTO t(c2) VALUES (40);
 
921
SELECT * FROM t ORDER BY c1 ASC;
 
922
c1      c2
 
923
-3      -20
 
924
-1      -10
 
925
1       10
 
926
2       20
 
927
3       30
 
928
4       40
 
929
DELETE FROM t WHERE c1 > 1;
 
930
SELECT * FROM t ORDER BY c1 ASC;
 
931
c1      c2
 
932
-3      -20
 
933
-1      -10
 
934
1       10
 
935
DROP TABLE t;
 
936
# Inserting a positive value that exceeds maximum allowed value for an
 
937
# Auto Increment column (positive maximum)
 
938
CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1),
 
939
c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4;
 
940
INSERT INTO t(c2) VALUES (10);
 
941
INSERT INTO t(c2) VALUES (20);
 
942
INSERT INTO t VALUES (126,30);
 
943
INSERT INTO t VALUES (127,40);
 
944
INSERT INTO t VALUES (128,50);
 
945
ERROR 23000: Duplicate entry '127' for key 'PRIMARY'
 
946
INSERT INTO t VALUES (129,60);
 
947
ERROR 23000: Duplicate entry '127' for key 'PRIMARY'
 
948
SELECT * FROM t ORDER BY c1 ASC;
 
949
c1      c2
 
950
1       10
 
951
2       20
 
952
126     30
 
953
127     40
 
954
DROP TABLE t;
 
955
# Inserting a negative value that goes below minimum allowed value for an
 
956
# Auto Increment column (negative minimum)
 
957
CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1),
 
958
c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4;
 
959
INSERT INTO t(c2) VALUES (10);
 
960
INSERT INTO t(c2) VALUES (20);
 
961
INSERT INTO t VALUES (-127,30);
 
962
INSERT INTO t VALUES (-128,40);
 
963
INSERT INTO t VALUES (-129,50);
 
964
ERROR 23000: Duplicate entry '-128' for key 'PRIMARY'
 
965
INSERT INTO t VALUES (-130,60);
 
966
ERROR 23000: Duplicate entry '-128' for key 'PRIMARY'
 
967
SELECT * FROM t ORDER BY c1 ASC;
 
968
c1      c2
 
969
-128    40
 
970
-127    30
 
971
1       10
 
972
2       20
 
973
DROP TABLE t;
 
974
# Updating the partition table with a negative Auto Increment value
 
975
CREATE TABLE t (c1 INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1),
 
976
c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4;
 
977
INSERT INTO t(c2) VALUES (10);
 
978
INSERT INTO t(c2) VALUES (20);
 
979
INSERT INTO t VALUES (-1,-10);
 
980
INSERT INTO t(c2) VALUES (30);
 
981
SELECT * FROM t ORDER BY c1 ASC;
 
982
c1      c2
 
983
-1      -10
 
984
1       10
 
985
2       20
 
986
3       30
 
987
UPDATE t SET c1 = -6 WHERE c1 = 2;
 
988
SELECT * FROM t ORDER BY c1 ASC;
 
989
c1      c2
 
990
-6      20
 
991
-1      -10
 
992
1       10
 
993
3       30
 
994
INSERT INTO t(c2) VALUES (40);
 
995
INSERT INTO t(c2) VALUES (50);
 
996
UPDATE t SET c1 = -6 WHERE c1 = 2;
 
997
SELECT * FROM t ORDER BY c1 ASC;
 
998
c1      c2
 
999
-6      20
 
1000
-1      -10
 
1001
1       10
 
1002
3       30
 
1003
4       40
 
1004
5       50
 
1005
DROP TABLE t;
 
1006
# Updating the partition table with a value that crosses the upper limits
 
1007
# on both the positive and the negative side.
 
1008
CREATE TABLE t (c1 TINYINT NOT NULL AUTO_INCREMENT, PRIMARY KEY(c1),
 
1009
c2 INT) ENGINE='NDB' PARTITION BY HASH(c1) PARTITIONS 4;
 
1010
INSERT INTO t(c2) VALUES (10);
 
1011
INSERT INTO t(c2) VALUES (20);
 
1012
INSERT INTO t VALUES (126,30);
 
1013
INSERT INTO t VALUES (127,40);
 
1014
SELECT * FROM t ORDER BY c1 ASC;
 
1015
c1      c2
 
1016
1       10
 
1017
2       20
 
1018
126     30
 
1019
127     40
 
1020
UPDATE t SET c1 = 130 where c1 = 127;
 
1021
Warnings:
 
1022
Warning 1264    Out of range value for column 'c1' at row 1
 
1023
SELECT * FROM t ORDER BY c1 ASC;
 
1024
c1      c2
 
1025
1       10
 
1026
2       20
 
1027
126     30
 
1028
127     40
 
1029
UPDATE t SET c1 = -140 where c1 = 126;
 
1030
Warnings:
 
1031
Warning 1264    Out of range value for column 'c1' at row 1
 
1032
SELECT * FROM t ORDER BY c1 ASC;
 
1033
c1      c2
 
1034
-128    30
 
1035
1       10
 
1036
2       20
 
1037
127     40
 
1038
DROP TABLE t;
 
1039
##############################################################################