mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-18819 ALTER_COLUMN_VCOL is not set for generated stored columns
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
--- alter_algorithm.result
|
--- alter_algorithm.result
|
||||||
+++ alter_algorithm.reject
|
+++ alter_algorithm.reject
|
||||||
@@ -7,44 +7,44 @@
|
@@ -7,40 +7,40 @@
|
||||||
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
|
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
|
||||||
SELECT @@alter_algorithm;
|
SELECT @@alter_algorithm;
|
||||||
@@alter_algorithm
|
@@alter_algorithm
|
||||||
@ -18,12 +18,6 @@
|
|||||||
-affected rows: 1
|
-affected rows: 1
|
||||||
-info: Records: 1 Duplicates: 0 Warnings: 0
|
-info: Records: 1 Duplicates: 0 Warnings: 0
|
||||||
+affected rows: 0
|
+affected rows: 0
|
||||||
+info: Records: 0 Duplicates: 0 Warnings: 0
|
|
||||||
# Make existing column NON-NULLABLE
|
|
||||||
ALTER TABLE t1 MODIFY f3 INT NOT NULL;
|
|
||||||
-affected rows: 1
|
|
||||||
-info: Records: 1 Duplicates: 0 Warnings: 0
|
|
||||||
+affected rows: 0
|
|
||||||
+info: Records: 0 Duplicates: 0 Warnings: 0
|
+info: Records: 0 Duplicates: 0 Warnings: 0
|
||||||
# Drop Stored Column
|
# Drop Stored Column
|
||||||
ALTER TABLE t1 DROP COLUMN f5;
|
ALTER TABLE t1 DROP COLUMN f5;
|
||||||
@ -64,7 +58,7 @@
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL,
|
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL,
|
||||||
@@ -57,22 +57,22 @@
|
@@ -53,22 +53,22 @@
|
||||||
FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB;
|
FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB;
|
||||||
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
|
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
|
||||||
ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1;
|
ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1;
|
||||||
@ -97,7 +91,7 @@
|
|||||||
DROP TABLE t2, t1;
|
DROP TABLE t2, t1;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
CREATE TABLE t1(f1 INT NOT NULL,
|
CREATE TABLE t1(f1 INT NOT NULL,
|
||||||
@@ -85,27 +85,27 @@
|
@@ -81,27 +81,27 @@
|
||||||
INSERT INTO t1(f1, f2) VALUES(1, 1);
|
INSERT INTO t1(f1, f2) VALUES(1, 1);
|
||||||
# Add column at the end of the table
|
# Add column at the end of the table
|
||||||
ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL';
|
ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL';
|
||||||
@ -135,7 +129,7 @@
|
|||||||
# Column length varies
|
# Column length varies
|
||||||
ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20);
|
ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20);
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
@@ -113,12 +113,12 @@
|
@@ -109,12 +109,12 @@
|
||||||
SET foreign_key_checks = 0;
|
SET foreign_key_checks = 0;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1);
|
ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- alter_algorithm.result
|
--- alter_algorithm.result
|
||||||
+++ alter_algorithm.reject
|
+++ alter_algorithm.reject
|
||||||
@@ -7,44 +7,35 @@
|
@@ -7,40 +7,32 @@
|
||||||
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
|
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
|
||||||
SELECT @@alter_algorithm;
|
SELECT @@alter_algorithm;
|
||||||
@@alter_algorithm
|
@@alter_algorithm
|
||||||
@ -16,11 +16,6 @@
|
|||||||
ALTER TABLE t1 MODIFY f2 INT;
|
ALTER TABLE t1 MODIFY f2 INT;
|
||||||
-affected rows: 1
|
-affected rows: 1
|
||||||
-info: Records: 1 Duplicates: 0 Warnings: 0
|
-info: Records: 1 Duplicates: 0 Warnings: 0
|
||||||
+Got one of the listed errors
|
|
||||||
# Make existing column NON-NULLABLE
|
|
||||||
ALTER TABLE t1 MODIFY f3 INT NOT NULL;
|
|
||||||
-affected rows: 1
|
|
||||||
-info: Records: 1 Duplicates: 0 Warnings: 0
|
|
||||||
+Got one of the listed errors
|
+Got one of the listed errors
|
||||||
# Drop Stored Column
|
# Drop Stored Column
|
||||||
ALTER TABLE t1 DROP COLUMN f5;
|
ALTER TABLE t1 DROP COLUMN f5;
|
||||||
@ -55,7 +50,7 @@
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL,
|
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL,
|
||||||
@@ -57,22 +48,17 @@
|
@@ -53,22 +45,17 @@
|
||||||
FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB;
|
FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB;
|
||||||
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
|
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
|
||||||
ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1;
|
ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1;
|
||||||
@ -83,7 +78,7 @@
|
|||||||
DROP TABLE t2, t1;
|
DROP TABLE t2, t1;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
CREATE TABLE t1(f1 INT NOT NULL,
|
CREATE TABLE t1(f1 INT NOT NULL,
|
||||||
@@ -85,27 +71,27 @@
|
@@ -81,27 +68,27 @@
|
||||||
INSERT INTO t1(f1, f2) VALUES(1, 1);
|
INSERT INTO t1(f1, f2) VALUES(1, 1);
|
||||||
# Add column at the end of the table
|
# Add column at the end of the table
|
||||||
ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL';
|
ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL';
|
||||||
@ -121,7 +116,7 @@
|
|||||||
# Column length varies
|
# Column length varies
|
||||||
ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20);
|
ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20);
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
@@ -113,12 +99,12 @@
|
@@ -109,12 +96,12 @@
|
||||||
SET foreign_key_checks = 0;
|
SET foreign_key_checks = 0;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1);
|
ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- alter_algorithm.result
|
--- alter_algorithm.result
|
||||||
+++ alter_algorithm.reject
|
+++ alter_algorithm.reject
|
||||||
@@ -7,44 +7,35 @@
|
@@ -7,40 +7,32 @@
|
||||||
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
|
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
|
||||||
SELECT @@alter_algorithm;
|
SELECT @@alter_algorithm;
|
||||||
@@alter_algorithm
|
@@alter_algorithm
|
||||||
@ -16,11 +16,6 @@
|
|||||||
ALTER TABLE t1 MODIFY f2 INT;
|
ALTER TABLE t1 MODIFY f2 INT;
|
||||||
-affected rows: 1
|
-affected rows: 1
|
||||||
-info: Records: 1 Duplicates: 0 Warnings: 0
|
-info: Records: 1 Duplicates: 0 Warnings: 0
|
||||||
+Got one of the listed errors
|
|
||||||
# Make existing column NON-NULLABLE
|
|
||||||
ALTER TABLE t1 MODIFY f3 INT NOT NULL;
|
|
||||||
-affected rows: 1
|
|
||||||
-info: Records: 1 Duplicates: 0 Warnings: 0
|
|
||||||
+Got one of the listed errors
|
+Got one of the listed errors
|
||||||
# Drop Stored Column
|
# Drop Stored Column
|
||||||
ALTER TABLE t1 DROP COLUMN f5;
|
ALTER TABLE t1 DROP COLUMN f5;
|
||||||
@ -55,7 +50,7 @@
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL,
|
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL,
|
||||||
@@ -57,22 +48,22 @@
|
@@ -53,22 +45,22 @@
|
||||||
FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB;
|
FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB;
|
||||||
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
|
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
|
||||||
ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1;
|
ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1;
|
||||||
@ -88,7 +83,7 @@
|
|||||||
DROP TABLE t2, t1;
|
DROP TABLE t2, t1;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
CREATE TABLE t1(f1 INT NOT NULL,
|
CREATE TABLE t1(f1 INT NOT NULL,
|
||||||
@@ -85,27 +76,27 @@
|
@@ -81,27 +73,27 @@
|
||||||
INSERT INTO t1(f1, f2) VALUES(1, 1);
|
INSERT INTO t1(f1, f2) VALUES(1, 1);
|
||||||
# Add column at the end of the table
|
# Add column at the end of the table
|
||||||
ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL';
|
ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL';
|
||||||
@ -126,7 +121,7 @@
|
|||||||
# Column length varies
|
# Column length varies
|
||||||
ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20);
|
ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20);
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
@@ -113,12 +104,12 @@
|
@@ -109,12 +101,12 @@
|
||||||
SET foreign_key_checks = 0;
|
SET foreign_key_checks = 0;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1);
|
ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1);
|
||||||
|
@ -17,10 +17,6 @@ info: Records: 1 Duplicates: 0 Warnings: 0
|
|||||||
ALTER TABLE t1 MODIFY f2 INT;
|
ALTER TABLE t1 MODIFY f2 INT;
|
||||||
affected rows: 1
|
affected rows: 1
|
||||||
info: Records: 1 Duplicates: 0 Warnings: 0
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
||||||
# Make existing column NON-NULLABLE
|
|
||||||
ALTER TABLE t1 MODIFY f3 INT NOT NULL;
|
|
||||||
affected rows: 1
|
|
||||||
info: Records: 1 Duplicates: 0 Warnings: 0
|
|
||||||
# Drop Stored Column
|
# Drop Stored Column
|
||||||
ALTER TABLE t1 DROP COLUMN f5;
|
ALTER TABLE t1 DROP COLUMN f5;
|
||||||
affected rows: 1
|
affected rows: 1
|
||||||
|
@ -96,8 +96,8 @@ INSERT INTO t3 SET c=NULL;
|
|||||||
SET @old_sql_mode = @@sql_mode;
|
SET @old_sql_mode = @@sql_mode;
|
||||||
SET sql_mode = '';
|
SET sql_mode = '';
|
||||||
ALTER TABLE t1 MODIFY c INT NOT NULL;
|
ALTER TABLE t1 MODIFY c INT NOT NULL;
|
||||||
affected rows: 0
|
affected rows: 1
|
||||||
info: Records: 0 Duplicates: 0 Warnings: 1
|
info: Records: 1 Duplicates: 0 Warnings: 1
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1265 Data truncated for column 'c' at row 1
|
Warning 1265 Data truncated for column 'c' at row 1
|
||||||
ALTER TABLE t2 MODIFY c INT NOT NULL;
|
ALTER TABLE t2 MODIFY c INT NOT NULL;
|
||||||
@ -111,10 +111,9 @@ info: Records: 1 Duplicates: 0 Warnings: 1
|
|||||||
Warnings:
|
Warnings:
|
||||||
Warning 1265 Data truncated for column 'c' at row 1
|
Warning 1265 Data truncated for column 'c' at row 1
|
||||||
SET sql_mode = @old_sql_mode;
|
SET sql_mode = @old_sql_mode;
|
||||||
# MDEV-18819 FIXME: Wrong result g=NULL
|
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c g
|
c g
|
||||||
0 NULL
|
0 0
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
c v
|
c v
|
||||||
0 0
|
0 0
|
||||||
@ -137,8 +136,8 @@ INSERT INTO t1 SET c=NULL;
|
|||||||
INSERT INTO t2 SET c=NULL;
|
INSERT INTO t2 SET c=NULL;
|
||||||
INSERT INTO t3 SET c=NULL;
|
INSERT INTO t3 SET c=NULL;
|
||||||
ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL;
|
ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL;
|
||||||
affected rows: 0
|
affected rows: 1
|
||||||
info: Records: 0 Duplicates: 0 Warnings: 1
|
info: Records: 1 Duplicates: 0 Warnings: 1
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1265 Data truncated for column 'c' at row 1
|
Warning 1265 Data truncated for column 'c' at row 1
|
||||||
ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL;
|
ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL;
|
||||||
@ -151,10 +150,9 @@ affected rows: 1
|
|||||||
info: Records: 1 Duplicates: 0 Warnings: 1
|
info: Records: 1 Duplicates: 0 Warnings: 1
|
||||||
Warnings:
|
Warnings:
|
||||||
Warning 1265 Data truncated for column 'c' at row 1
|
Warning 1265 Data truncated for column 'c' at row 1
|
||||||
# MDEV-18819 FIXME: Wrong result g=NULL
|
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c g
|
c g
|
||||||
0 NULL
|
0 0
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
c v
|
c v
|
||||||
0 0
|
0 0
|
||||||
@ -186,12 +184,11 @@ UPDATE t1 SET c=0;
|
|||||||
UPDATE t2 SET c=0;
|
UPDATE t2 SET c=0;
|
||||||
UPDATE t3 SET c=0;
|
UPDATE t3 SET c=0;
|
||||||
ALTER TABLE t1 MODIFY c INT NOT NULL;
|
ALTER TABLE t1 MODIFY c INT NOT NULL;
|
||||||
affected rows: 0
|
affected rows: 1
|
||||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
||||||
ALTER TABLE t2 MODIFY c INT NOT NULL;
|
ALTER TABLE t2 MODIFY c INT NOT NULL;
|
||||||
affected rows: 0
|
affected rows: 0
|
||||||
info: Records: 0 Duplicates: 0 Warnings: 0
|
info: Records: 0 Duplicates: 0 Warnings: 0
|
||||||
# MDEV-18819 FIXME: This should not require ALGORITHM=COPY.
|
|
||||||
ALTER TABLE t3 MODIFY c INT NOT NULL;
|
ALTER TABLE t3 MODIFY c INT NOT NULL;
|
||||||
affected rows: 1
|
affected rows: 1
|
||||||
info: Records: 1 Duplicates: 0 Warnings: 0
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
||||||
|
@ -31,10 +31,6 @@ ALTER TABLE t1 ADD COLUMN col1 INT NOT NULL,DROP PRIMARY KEY,ADD PRIMARY KEY(col
|
|||||||
--error $error_code
|
--error $error_code
|
||||||
ALTER TABLE t1 MODIFY f2 INT;
|
ALTER TABLE t1 MODIFY f2 INT;
|
||||||
|
|
||||||
--echo # Make existing column NON-NULLABLE
|
|
||||||
--error $error_code
|
|
||||||
ALTER TABLE t1 MODIFY f3 INT NOT NULL;
|
|
||||||
|
|
||||||
--echo # Drop Stored Column
|
--echo # Drop Stored Column
|
||||||
--error $error_code
|
--error $error_code
|
||||||
ALTER TABLE t1 DROP COLUMN f5;
|
ALTER TABLE t1 DROP COLUMN f5;
|
||||||
|
@ -104,7 +104,6 @@ ALTER TABLE t2 MODIFY c INT NOT NULL;
|
|||||||
ALTER TABLE t3 MODIFY c INT NOT NULL;
|
ALTER TABLE t3 MODIFY c INT NOT NULL;
|
||||||
--disable_info
|
--disable_info
|
||||||
SET sql_mode = @old_sql_mode;
|
SET sql_mode = @old_sql_mode;
|
||||||
--echo # MDEV-18819 FIXME: Wrong result g=NULL
|
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
SELECT * FROM t3;
|
SELECT * FROM t3;
|
||||||
@ -123,7 +122,6 @@ ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL;
|
|||||||
ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL;
|
ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL;
|
||||||
ALTER IGNORE TABLE t3 MODIFY c INT NOT NULL;
|
ALTER IGNORE TABLE t3 MODIFY c INT NOT NULL;
|
||||||
--disable_info
|
--disable_info
|
||||||
--echo # MDEV-18819 FIXME: Wrong result g=NULL
|
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
SELECT * FROM t2;
|
SELECT * FROM t2;
|
||||||
SELECT * FROM t3;
|
SELECT * FROM t3;
|
||||||
@ -151,7 +149,6 @@ UPDATE t3 SET c=0;
|
|||||||
--enable_info
|
--enable_info
|
||||||
ALTER TABLE t1 MODIFY c INT NOT NULL;
|
ALTER TABLE t1 MODIFY c INT NOT NULL;
|
||||||
ALTER TABLE t2 MODIFY c INT NOT NULL;
|
ALTER TABLE t2 MODIFY c INT NOT NULL;
|
||||||
--echo # MDEV-18819 FIXME: This should not require ALGORITHM=COPY.
|
|
||||||
ALTER TABLE t3 MODIFY c INT NOT NULL;
|
ALTER TABLE t3 MODIFY c INT NOT NULL;
|
||||||
--disable_info
|
--disable_info
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
|
@ -6733,7 +6733,7 @@ static bool fill_alter_inplace_info(THD *thd, TABLE *table, bool varchar,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (field->vcol_info->is_in_partitioning_expr() ||
|
if (field->vcol_info->is_in_partitioning_expr() ||
|
||||||
field->flags & PART_KEY_FLAG)
|
field->flags & PART_KEY_FLAG || field->stored_in_db())
|
||||||
{
|
{
|
||||||
if (value_changes)
|
if (value_changes)
|
||||||
ha_alter_info->handler_flags|= ALTER_COLUMN_VCOL;
|
ha_alter_info->handler_flags|= ALTER_COLUMN_VCOL;
|
||||||
|
Reference in New Issue
Block a user