1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-18042 Server crashes upon adding a non-null date column under NO_ZERO_DATE with ALGORITHM=INPLACE

accept table_name and db_name instead of table_share in make_truncated_value_warning
This commit is contained in:
Nikita Malyavin
2020-07-29 01:01:24 +10:00
parent 91ebf1844f
commit fd0abc890f
9 changed files with 64 additions and 22 deletions

View File

@ -1055,3 +1055,20 @@ SELECT * FROM t1;
a b
10 10:20:30
DROP TABLE t1;
#
# MDEV-18042 Server crashes in mysql_alter_table upon adding a non-null
# date column under NO_ZERO_DATE with ALGORITHM=INPLACE
#
SET @OLD_SQL_MODE= @@SQL_MODE;
SET @@SQL_MODE= 'NO_ZERO_DATE';
CREATE OR REPLACE TABLE t1 (i INT) ENGINE=MyISAM;
ALTER TABLE t1 ADD COLUMN d DATE NOT NULL, ALGORITHM=INPLACE;
ERROR 0A000: ALGORITHM=INPLACE is not supported for this operation. Try ALGORITHM=COPY
CREATE OR REPLACE TABLE t1 (i INT) ENGINE=InnoDB;
ALTER TABLE t1 ADD d DATETIME NOT NULL CHECK (f <= 0), ALGORITHM=COPY;
ERROR 42S22: Unknown column 'f' in 'CHECK'
CREATE OR REPLACE TABLE t1 (a int) ENGINE=InnoDB;
ALTER TABLE t1 ADD COLUMN b DATETIME NOT NULL, LOCK=NONE;
# Cleanup
SET @@SQL_MODE= @OLD_SQL_MODE;
DROP TABLE t1;

View File

@ -646,6 +646,28 @@ ALTER TABLE t1 ADD b TIME NOT NULL DEFAULT if(unix_timestamp()>1,TIMESTAMP'2001-
SELECT * FROM t1;
DROP TABLE t1;
--echo #
--echo # MDEV-18042 Server crashes in mysql_alter_table upon adding a non-null
--echo # date column under NO_ZERO_DATE with ALGORITHM=INPLACE
--echo #
SET @OLD_SQL_MODE= @@SQL_MODE;
SET @@SQL_MODE= 'NO_ZERO_DATE';
CREATE OR REPLACE TABLE t1 (i INT) ENGINE=MyISAM;
--error ER_ALTER_OPERATION_NOT_SUPPORTED
ALTER TABLE t1 ADD COLUMN d DATE NOT NULL, ALGORITHM=INPLACE;
CREATE OR REPLACE TABLE t1 (i INT) ENGINE=InnoDB;
--error ER_BAD_FIELD_ERROR
ALTER TABLE t1 ADD d DATETIME NOT NULL CHECK (f <= 0), ALGORITHM=COPY;
CREATE OR REPLACE TABLE t1 (a int) ENGINE=InnoDB;
ALTER TABLE t1 ADD COLUMN b DATETIME NOT NULL, LOCK=NONE;
--echo # Cleanup
SET @@SQL_MODE= @OLD_SQL_MODE;
DROP TABLE t1;
#
# End of 10.2 tests
#