62 lines
1.7 KiB
PHP
62 lines
1.7 KiB
PHP
#
|
|
# NOT NULL attribute in TIMESTAMP columns
|
|
#
|
|
# This is a copy of col_not_null.inc, except that
|
|
# instead of getting an error on inserting NULL into a non-NULL column,
|
|
# we are getting the current timestamp (see MySQL:68472).
|
|
# If the bug is ever fixed, this include file won't be needed anymore.
|
|
|
|
|
|
--disable_warnings
|
|
DROP TABLE IF EXISTS t1;
|
|
--enable_warnings
|
|
|
|
--echo #----------------------------------
|
|
--echo # $col_type NOT NULL column without a default
|
|
--echo #----------------------------------
|
|
|
|
eval CREATE TABLE t1 (pk INT AUTO_INCREMENT PRIMARY KEY, c $col_type NOT NULL) ENGINE=xengine;
|
|
SHOW COLUMNS IN t1;
|
|
|
|
# Here where the non-standard behavior strikes:
|
|
# instead of an error we are getting the current timestamp
|
|
|
|
# As of mysql-5.6.11, this no longer works, and we get an error:
|
|
--error ER_BAD_NULL_ERROR
|
|
INSERT INTO t1 (c) VALUES (NULL);
|
|
eval INSERT INTO t1 (c) VALUES ($col_default);
|
|
SELECT HEX(c) FROM t1;
|
|
|
|
DROP TABLE t1;
|
|
|
|
--echo #----------------------------------
|
|
--echo # $col_type NOT NULL columns with a default
|
|
--echo #----------------------------------
|
|
|
|
eval CREATE TABLE t1 (
|
|
pk INT AUTO_INCREMENT PRIMARY KEY,
|
|
c $col_type NOT NULL DEFAULT $col_default
|
|
) ENGINE=xengine;
|
|
|
|
SHOW COLUMNS IN t1;
|
|
|
|
--error ER_INVALID_DEFAULT
|
|
eval ALTER TABLE t1 ADD COLUMN err $col_type NOT NULL DEFAULT NULL;
|
|
|
|
# Here where the non-standard behavior strikes:
|
|
# instead of an error we are getting the current timestamp
|
|
|
|
# As of mysql-5.6.11, this no longer works, and we get an error:
|
|
--error ER_BAD_NULL_ERROR
|
|
INSERT INTO t1 (c) VALUES (NULL);
|
|
|
|
eval INSERT INTO t1 (c) VALUES ($col_default);
|
|
eval INSERT INTO t1 () VALUES ();
|
|
|
|
# HEX should be universal for all column types
|
|
SELECT pk, HEX(c) FROM t1 ORDER BY pk;
|
|
|
|
DROP TABLE t1;
|
|
|
|
|