mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
MDEV-18819: Add a test case
This commit is contained in:
@@ -89,6 +89,74 @@ ALTER IGNORE TABLE t1 ADD PRIMARY KEY(c);
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1(c INT, g INT AS (c) PERSISTENT) ENGINE=InnoDB;
|
||||
CREATE TABLE t2(c INT, v INT AS (c) VIRTUAL) ENGINE=InnoDB;
|
||||
CREATE TABLE t3(c INT, v INT AS (c) VIRTUAL, INDEX(v)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 SET c=NULL;
|
||||
INSERT INTO t2 SET c=NULL;
|
||||
INSERT INTO t3 SET c=NULL;
|
||||
SET @old_sql_mode = @@sql_mode;
|
||||
# Allow lossy conversions of data
|
||||
SET sql_mode = '';
|
||||
--enable_info
|
||||
ALTER TABLE t1 MODIFY c INT NOT NULL;
|
||||
ALTER TABLE t2 MODIFY c INT NOT NULL;
|
||||
ALTER TABLE t3 MODIFY c INT NOT NULL;
|
||||
--disable_info
|
||||
SET sql_mode = @old_sql_mode;
|
||||
SELECT * FROM t1;
|
||||
SELECT * FROM t2;
|
||||
SELECT * FROM t3;
|
||||
SELECT v FROM t3 FORCE INDEX(v);
|
||||
CHECK TABLE t1,t2,t3;
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
CREATE TABLE t1(c INT, g INT AS (c) PERSISTENT) ENGINE=InnoDB;
|
||||
CREATE TABLE t2(c INT, v INT AS (c) VIRTUAL) ENGINE=InnoDB;
|
||||
CREATE TABLE t3(c INT, v INT AS (c) VIRTUAL, INDEX(v)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 SET c=NULL;
|
||||
INSERT INTO t2 SET c=NULL;
|
||||
INSERT INTO t3 SET c=NULL;
|
||||
--enable_info
|
||||
ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL;
|
||||
ALTER IGNORE TABLE t2 MODIFY c INT NOT NULL;
|
||||
ALTER IGNORE TABLE t3 MODIFY c INT NOT NULL;
|
||||
--disable_info
|
||||
SELECT * FROM t1;
|
||||
SELECT * FROM t2;
|
||||
SELECT * FROM t3;
|
||||
SELECT v FROM t3 FORCE INDEX(v);
|
||||
CHECK TABLE t1,t2,t3;
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
CREATE TABLE t1(c INT, g INT AS (c) PERSISTENT) ENGINE=InnoDB;
|
||||
CREATE TABLE t2(c INT, v INT AS (c) VIRTUAL) ENGINE=InnoDB;
|
||||
CREATE TABLE t3(c INT, v INT AS (c) VIRTUAL, INDEX(v)) ENGINE=InnoDB;
|
||||
INSERT INTO t1 SET c=NULL;
|
||||
INSERT INTO t2 SET c=NULL;
|
||||
INSERT INTO t3 SET c=NULL;
|
||||
--enable_info
|
||||
--error ER_INVALID_USE_OF_NULL
|
||||
ALTER TABLE t1 MODIFY c INT NOT NULL;
|
||||
--error ER_INVALID_USE_OF_NULL
|
||||
ALTER TABLE t2 MODIFY c INT NOT NULL;
|
||||
--error WARN_DATA_TRUNCATED
|
||||
ALTER TABLE t3 MODIFY c INT NOT NULL;
|
||||
--disable_info
|
||||
UPDATE t1 SET c=0;
|
||||
UPDATE t2 SET c=0;
|
||||
UPDATE t3 SET c=0;
|
||||
--enable_info
|
||||
ALTER TABLE t1 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;
|
||||
--disable_info
|
||||
SELECT * FROM t1;
|
||||
SELECT * FROM t2;
|
||||
SELECT * FROM t3;
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
||||
# Check that all connections opened by test cases in this file are really
|
||||
# gone so execution of other tests won't be affected by their presence.
|
||||
--source include/wait_until_count_sessions.inc
|
||||
|
||||
Reference in New Issue
Block a user