1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

MDEV-18732 InnoDB: ALTER IGNORE returns error for NULL

Only starting with MariaDB 10.3.8 (MDEV-16365), InnoDB can actually
handle ALTER IGNORE TABLE correctly when introducing a NOT NULL
attribute to a column that contains a NULL value. Between
MariaDB Server 10.0 and 10.2, we would incorrectly return an error
for ALTER IGNORE TABLE when the column contains a NULL value.
This commit is contained in:
Marko Mäkelä
2019-03-04 15:16:27 +02:00
parent 19df45a705
commit 91e4f00389
4 changed files with 62 additions and 2 deletions

View File

@@ -76,6 +76,32 @@ ALTER TABLE t1 ADD CONSTRAINT UNIQUE KEY i1(c1);
ALTER TABLE t1 CHANGE c1 c1 INT NOT NULL,ADD KEY(c1);
DROP TABLE t1;
--echo #
--echo # MDEV-18732 InnoDB: ALTER IGNORE returns error for NULL
--echo #
SET @mode = @@sql_mode;
SET sql_mode = STRICT_TRANS_TABLES;
CREATE TABLE t1(c INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (NULL);
--enable_info
ALTER IGNORE TABLE t1 MODIFY c INT NOT NULL;
--disable_info
--error ER_BAD_NULL_ERROR
INSERT INTO t1 VALUES (NULL);
SELECT * FROM t1;
DROP TABLE t1;
CREATE TABLE t1(c INT) ENGINE=InnoDB;
INSERT INTO t1 VALUES (NULL),(1),(1);
--enable_info
ALTER IGNORE TABLE t1 ADD UNIQUE(c);
ALTER IGNORE TABLE t1 ADD PRIMARY KEY(c);
--disable_info
SELECT * FROM t1;
DROP TABLE t1;
SET sql_mode = @mode;
# 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