summaryrefslogtreecommitdiff
path: root/mysql-test/r
diff options
context:
space:
mode:
authorJacob Mathew <jacob.mathew@mariadb.com>2018-05-14 16:30:25 -0700
committerJacob Mathew <jacob.mathew@mariadb.com>2018-05-14 16:30:25 -0700
commit95e9c7054f08409a565bb5e99ea533bd513f478a (patch)
tree675dc3025aad379327dd4a6ff47fab4a9238eedc /mysql-test/r
parent0d033b6d34631df9df1f703c92ed0356db1c2365 (diff)
downloadmariadb-git-95e9c7054f08409a565bb5e99ea533bd513f478a.tar.gz
MDEV-16101: ADD PARTITION on table partitioned by list does not work with more than 32 list values.
This problem occured because the reorganization of the list of values when the number of elements exceeds 32 was not handled correctly. I have fixed the problem by fixing the way that the list values are reorganized when the number of list values exceeds 32. Author: Jacob Mathew. Reviewer: Alexey Botchkov. Merged From: Commit 8e01598 on branch bb-10.3-MDEV-16101
Diffstat (limited to 'mysql-test/r')
-rw-r--r--mysql-test/r/partition_list.result210
1 files changed, 210 insertions, 0 deletions
diff --git a/mysql-test/r/partition_list.result b/mysql-test/r/partition_list.result
index 91c1c106cea..f4cd1c9da43 100644
--- a/mysql-test/r/partition_list.result
+++ b/mysql-test/r/partition_list.result
@@ -334,3 +334,213 @@ f
1
drop table t1;
#end of 10.2 tests
+#
+# Bug MDEV-16101: More than MAX_REF_PARTS values in a list on ALTER TABLE.
+# Currently MAX_REF_PARTS = 32.
+CREATE TABLE ts1 (a INT, PRIMARY KEY (`a`))
+PARTITION BY LIST (`a`)
+(PARTITION `p ts_0` VALUES IN (101,102,103,104,105,106,107,108,109,110,
+111,112,113,114,115,116,117,118,119,120,
+121,122,123,124,125,126,127,128,129,130,
+131,132,133));
+INSERT INTO ts1
+VALUES (101), (102), (103), (104), (105), (106), (107), (108), (109), (110),
+(111), (112), (113), (114), (115), (116), (117), (118), (119), (120),
+(121), (122), (123), (124), (125), (126), (127), (128), (129), (130),
+(131), (132), (133);
+INSERT INTO ts1 VALUES (134);
+ERROR HY000: Table has no partition for value 134
+SELECT * FROM ts1;
+a
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+ALTER TABLE ts1 ADD PARTITION
+(PARTITION `p ts_1` VALUES IN (1,2,3,4,5,6,7,8,9,10,
+11,12,13,14,15,16,17,18,19,20,
+21,22,23,24,25,26,27,28,29,30,
+31,32,33));
+INSERT INTO ts1
+VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10),
+(11), (12), (13), (14), (15), (16), (17), (18), (19), (20),
+(21), (22), (23), (24), (25), (26), (27), (28), (29), (30),
+(31), (32), (33);
+INSERT INTO ts1 VALUES(34);
+ERROR HY000: Table has no partition for value 34
+SELECT * FROM ts1;
+a
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+ALTER TABLE ts1 REORGANIZE PARTITION `p ts_1` INTO
+(PARTITION `p ts_1` VALUES IN (1,2,3,4,5,6,7,8,9,10,
+11,12,13,14,15,16,17,18,19,20,
+21,22,23,24,25,26,27,28,29,30,
+31,32,33,34,35));
+INSERT INTO ts1 VALUES (34), (35);
+INSERT INTO ts1 VALUES (36);
+ERROR HY000: Table has no partition for value 36
+SELECT * FROM ts1;
+a
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+DROP TABLE ts1;