You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -2,18 +2,18 @@ CREATE TABLE t (a INT, b INT GENERATED ALWAYS AS (a), c CHAR(10), d CHAR(20), e
2
2
INSERT INTO t VALUES(10, DEFAULT, "aa", "bb", DEFAULT, 20);
3
3
INSERT INTO t VALUES(11, DEFAULT, "jj", "kk", DEFAULT, 21);
4
4
CREATE INDEX idx ON t(e) algorithm=inplace;
5
-
INSERT INTO t VALUES(12, DEFAULT, "mm", "nn", DEFAULT, 22);
5
+
INSERT INTO t VALUES(12, DEFAULT, 'mm', "nn", DEFAULT, 22);
6
6
SELECT e FROM t;
7
7
e
8
8
aa
9
9
jj
10
10
mm
11
11
DROP TABLE t;
12
12
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
13
-
INSERT INTO t VALUES (11, 3, DEFAULT, "mm");
14
-
INSERT INTO t VALUES (18, 1, DEFAULT, "mm");
15
-
INSERT INTO t VALUES (28, 1, DEFAULT, "mm");
16
-
INSERT INTO t VALUES (null, null, DEFAULT, "mm");
13
+
INSERT INTO t VALUES (11, 3, DEFAULT, 'mm');
14
+
INSERT INTO t VALUES (18, 1, DEFAULT, 'mm');
15
+
INSERT INTO t VALUES (28, 1, DEFAULT, 'mm');
16
+
INSERT INTO t VALUES (null, null, DEFAULT, 'mm');
17
17
CREATE INDEX idx ON t(c);
18
18
SELECT c FROM t;
19
19
c
@@ -97,9 +97,9 @@ SELECT length(c) FROM t;
97
97
length(c)
98
98
32000
99
99
START TRANSACTION;
100
-
INSERT INTO t VALUES (REPEAT('a', 16000), REPEAT('b', 16000), DEFAULT, "mm");
100
+
INSERT INTO t VALUES (REPEAT('a', 16000), REPEAT('b', 16000), DEFAULT, 'mm');
101
101
ROLLBACK;
102
-
INSERT INTO t VALUES (REPEAT('a', 16000), REPEAT('b', 16000), DEFAULT, "mm");
102
+
INSERT INTO t VALUES (REPEAT('a', 16000), REPEAT('b', 16000), DEFAULT, 'mm');
103
103
START TRANSACTION;
104
104
UPDATE t SET a = REPEAT('m', 16000) WHERE a like "aaa%";
105
105
ROLLBACK;
@@ -108,9 +108,9 @@ COUNT(*)
108
108
1
109
109
DROP TABLE t;
110
110
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
111
-
INSERT INTO t VALUES (11, 3, DEFAULT, "mm");
112
-
INSERT INTO t VALUES (18, 1, DEFAULT, "mm");
113
-
INSERT INTO t VALUES (28, 1, DEFAULT, "mm");
111
+
INSERT INTO t VALUES (11, 3, DEFAULT, 'mm');
112
+
INSERT INTO t VALUES (18, 1, DEFAULT, 'mm');
113
+
INSERT INTO t VALUES (28, 1, DEFAULT, 'mm');
114
114
CREATE INDEX idx ON t(c);
115
115
START TRANSACTION;
116
116
UPDATE t SET a = 100 WHERE a = 11;
@@ -129,9 +129,9 @@ c
129
129
29
130
130
DROP TABLE t;
131
131
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
132
-
INSERT INTO t VALUES (11, 3, DEFAULT, "mm");
133
-
INSERT INTO t VALUES (18, 1, DEFAULT, "mm");
134
-
INSERT INTO t VALUES (28, 1, DEFAULT, "mm");
132
+
INSERT INTO t VALUES (11, 3, DEFAULT, 'mm');
133
+
INSERT INTO t VALUES (18, 1, DEFAULT, 'mm');
134
+
INSERT INTO t VALUES (28, 1, DEFAULT, 'mm');
135
135
CREATE INDEX idx ON t(c);
136
136
SELECT c FROM t;
137
137
c
@@ -193,10 +193,10 @@ CREATE TABLE t1(a INT);
193
193
INSERT INTO t1 VALUES(1);
194
194
ALTER TABLE t1 add COLUMN (f INT generated always as (a+1) virtual, g INT );
195
195
ALTER TABLE t1 add COLUMN (h INT generated always as (a+1) virtual), add INDEX idx (h), algorithm=inplace;
196
-
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: INPLACE ADD or DROP of virtual columns cannot be combined with other ALTER TABLE actions. Try ALGORITHM=COPY.
197
-
ALTER TABLE t1 add COLUMN (h INT generated always as (a+1) virtual), add INDEX idx (h);
198
-
affected rows: 1
199
-
info: Records: 1 Duplicates: 0 Warnings: 0
196
+
ALTER TABLE t1 add COLUMN (h1 INT generated always as (a+1) virtual), add INDEX idx1 (h1);
197
+
affected rows: 0
198
+
info: Records: 0 Duplicates: 0 Warnings: 0
199
+
ALTER TABLE t1 DROP COLUMN h1, DROP INDEX idx;
200
200
DROP TABLE t1;
201
201
CREATE TABLE t1(a INT);
202
202
CREATE INDEX idx ON t1(a);
@@ -228,22 +228,22 @@ ERROR HY000: 'Spatial index on virtual generated column' is not supported for ge
228
228
DROP TABLE t;
229
229
CREATE TABLE t (a INT DEFAULT 1, b INT DEFAULT 2, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
INSERT INTO t1 VALUES (11, 22, DEFAULT, 23, "mm");
245
+
INSERT INTO t1 VALUES (1, 2, DEFAULT, 3, 'mm');
246
+
INSERT INTO t1 VALUES (11, 22, DEFAULT, 23, 'mm');
247
247
START TRANSACTION;
248
248
SELECT * FROM t1;
249
249
a b c x h
@@ -475,10 +475,10 @@ ALTER TABLE t DROP COLUMN c;
475
475
DELETE FROM t;
476
476
DROP TABLE t;
477
477
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
478
-
INSERT INTO t VALUES (11, 3, DEFAULT, "mm");
479
-
INSERT INTO t VALUES (18, 1, DEFAULT, "mm");
480
-
INSERT INTO t VALUES (28, 1, DEFAULT, "mm");
481
-
INSERT INTO t VALUES (null, null, DEFAULT, "mm");
478
+
INSERT INTO t VALUES (11, 3, DEFAULT, 'mm');
479
+
INSERT INTO t VALUES (18, 1, DEFAULT, 'mm');
480
+
INSERT INTO t VALUES (28, 1, DEFAULT, 'mm');
481
+
INSERT INTO t VALUES (null, null, DEFAULT, 'mm');
482
482
CREATE INDEX idx ON t(a, c);
483
483
SELECT a, c FROM t;
484
484
a c
@@ -515,9 +515,9 @@ NULL NULL d
515
515
28 29 c
516
516
DROP TABLE t;
517
517
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
518
-
INSERT INTO t VALUES (11, 3, DEFAULT, "mm");
519
-
INSERT INTO t VALUES (18, 1, DEFAULT, "mm");
520
-
INSERT INTO t VALUES (28, 1, DEFAULT, "mm");
518
+
INSERT INTO t VALUES (11, 3, DEFAULT, 'mm');
519
+
INSERT INTO t VALUES (18, 1, DEFAULT, 'mm');
520
+
INSERT INTO t VALUES (28, 1, DEFAULT, 'mm');
521
521
INSERT INTO t VALUES (null, null, DEFAULT, "mx");
522
522
SET DEBUG_SYNC = 'innodb_inplace_alter_table_enter SIGNAL start_create WAIT_FOR go_ahead';
523
523
CREATE INDEX idx ON t(c);;
@@ -623,7 +623,6 @@ XXXAAA
623
623
uuuuu
624
624
ummuooo
625
625
ALTER TABLE t ADD x VARCHAR(20) GENERATED ALWAYS AS(CONCAT(n, h)), ADD INDEX idx (x), algorithm=inplace;
626
-
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: INPLACE ADD or DROP of virtual columns cannot be combined with other ALTER TABLE actions. Try ALGORITHM=COPY.
627
626
DROP TABLE t;
628
627
CREATE TABLE `t1` (
629
628
`col1` int(11) DEFAULT NULL,
@@ -1079,10 +1078,10 @@ col_int_nokey) VIRTUAL NOT NULL,
1079
1078
PARTITIONS 3 */
1080
1079
DROP TABLE t;
1081
1080
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
1082
-
INSERT INTO t VALUES (11, 3, DEFAULT, "mm");
1083
-
INSERT INTO t VALUES (18, 1, DEFAULT, "mm");
1084
-
INSERT INTO t VALUES (28, 1, DEFAULT, "mm");
1085
-
INSERT INTO t VALUES (null, null, DEFAULT, "mm");
1081
+
INSERT INTO t VALUES (11, 3, DEFAULT, 'mm');
1082
+
INSERT INTO t VALUES (18, 1, DEFAULT, 'mm');
1083
+
INSERT INTO t VALUES (28, 1, DEFAULT, 'mm');
1084
+
INSERT INTO t VALUES (null, null, DEFAULT, 'mm');
1086
1085
ALTER TABLE t ADD COLUMN xs INT GENERATED ALWAYS AS(a+b), ADD COLUMN mm INT
ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY.
@@ -1147,3 +1146,73 @@ SELECT a FROM t FOR UPDATE;
1147
1146
a
1148
1147
1
1149
1148
DROP TABLE t;
1149
+
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
1150
+
INSERT INTO t VALUES (11, 3, DEFAULT, 'mm');
1151
+
INSERT INTO t VALUES (18, 1, DEFAULT, 'mm');
1152
+
INSERT INTO t VALUES (28, 1, DEFAULT, 'mm');
1153
+
INSERT INTO t VALUES (null, null, DEFAULT, 'mm');
1154
+
ALTER TABLE t ADD COLUMN x INT GENERATED ALWAYS AS(a+b), ADD INDEX idx (x);
1155
+
affected rows: 0
1156
+
info: Records: 0 Duplicates: 0 Warnings: 0
1157
+
SELECT x FROM t;
1158
+
x
1159
+
NULL
1160
+
14
1161
+
19
1162
+
29
1163
+
DROP TABLE t;
1164
+
CREATE TABLE t (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
1165
+
INSERT INTO t VALUES (11, 3, DEFAULT, 'mm');
1166
+
INSERT INTO t VALUES (18, 1, DEFAULT, 'mm');
1167
+
INSERT INTO t VALUES (28, 1, DEFAULT, 'mm');
1168
+
INSERT INTO t VALUES (null, null, DEFAULT, 'mm');
1169
+
CREATE INDEX idx_1 on t(c);
1170
+
SET SESSION debug="+d,create_index_fail";
1171
+
ALTER TABLE t ADD COLUMN x INT GENERATED ALWAYS AS(a+b), ADD INDEX idx (x);
1172
+
ERROR 23000: Duplicate entry '' for key '*UNKNOWN*'
1173
+
SET SESSION debug="-d,create_index_fail";
1174
+
affected rows: 0
1175
+
SHOW CREATE TABLE t;
1176
+
Table Create Table
1177
+
t CREATE TABLE `t` (
1178
+
`a` int(11) DEFAULT NULL,
1179
+
`b` int(11) DEFAULT NULL,
1180
+
`c` int(11) GENERATED ALWAYS AS (a+b) VIRTUAL,
1181
+
`h` varchar(10) DEFAULT NULL,
1182
+
KEY `idx_1` (`c`)
1183
+
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1184
+
SELECT c FROM t;
1185
+
c
1186
+
NULL
1187
+
14
1188
+
19
1189
+
29
1190
+
DROP TABLE t;
1191
+
CREATE TABLE t1 (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
1192
+
INSERT INTO t1 VALUES (11, 3, DEFAULT, 'mm');
1193
+
INSERT INTO t1 VALUES (18, 1, DEFAULT, 'mm');
1194
+
INSERT INTO t1 VALUES (28, 1, DEFAULT, 'mm');
1195
+
ALTER TABLE t1 ADD INDEX idx12 (c) , FORCE, LOCK=NONE;
1196
+
ALTER TABLE t1 DROP COLUMN h, ADD INDEX idx (c) , FORCE, LOCK=NONE;
1197
+
Warnings:
1198
+
Warning 1831 Duplicate index 'idx' defined on the table 'test.t1'. This is deprecated and will be disallowed in a future release.
1199
+
DROP TABLE t1 ;
1200
+
CREATE TABLE t1 (a INT, b INT, c INT GENERATED ALWAYS AS(a+b), d INT GENERATED ALWAYS AS(a+b), h VARCHAR(10));
1201
+
INSERT INTO t1 VALUES (11, 3, DEFAULT, DEFAULT, 'mm');
1202
+
INSERT INTO t1 VALUES (18, 1, DEFAULT, DEFAULT, 'mm');
1203
+
INSERT INTO t1 VALUES (28, 1, DEFAULT, DEFAULT, 'mm');
1204
+
ALTER TABLE t1 CHANGE d d INT GENERATED ALWAYS AS(a+b) FIRST, ALGORITHM = INPLACE;
1205
+
ERROR 0A000: ALGORITHM=INPLACE is not supported. Reason: INPLACE ADD or DROP of virtual columns cannot be combined with other ALTER TABLE actions. Try ALGORITHM=COPY.
1206
+
ALTER TABLE t1 CHANGE d d VARCHAR(10) GENERATED ALWAYS AS(h), ALGORITHM = INPLACE;
1207
+
ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY.
1208
+
ALTER TABLE t1 CHANGE d d INT GENERATED ALWAYS AS(a+b) FIRST;
0 commit comments