1--source include/have_innodb.inc 2 3# 4# testing of temporal data types with InnoDB 5# 6 7 8--echo # 9--echo # MDEV-9604 crash in Item::save_in_field with empty enum value 10--echo # 11 12SELECT TIME'00:00:00'=''; 13 14CREATE TABLE t1 (a ENUM('a'), b TIME, c INT, KEY(b)) ENGINE=InnoDB; 15INSERT IGNORE INTO t1 VALUES ('','00:00:00',0); 16SELECT * FROM t1 WHERE b=''; 17SELECT * FROM t1 IGNORE KEY (b) WHERE b=''; 18SELECT * FROM t1 WHERE a=b; 19SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b; 20 21ALTER TABLE t1 ENGINE=MyISAM; 22SELECT * FROM t1 WHERE b=''; 23SELECT * FROM t1 IGNORE KEY (b) WHERE b=''; 24SELECT * FROM t1 WHERE a=b; 25SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b; 26DROP TABLE t1; 27 28 29SELECT DATE'0000-00-00'=''; 30 31CREATE TABLE t1 (a ENUM('a'), b DATE, c INT, KEY(b)) ENGINE=InnoDB; 32INSERT IGNORE INTO t1 VALUES ('','0000-00-00',0); 33SELECT * FROM t1 WHERE b=''; 34SELECT * FROM t1 IGNORE KEY (b) WHERE b=''; 35SELECT * FROM t1 WHERE a=b; 36SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b; 37 38ALTER TABLE t1 ENGINE=MyISAM; 39SELECT * FROM t1 WHERE b=''; 40SELECT * FROM t1 IGNORE KEY (b) WHERE b=''; 41SELECT * FROM t1 WHERE a=b; 42SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b; 43DROP TABLE t1; 44 45 46SELECT TIMESTAMP'0000-00-00 00:00:00'=''; 47 48CREATE TABLE t1 (a ENUM('a'), b DATETIME, c INT, KEY(b)) ENGINE=InnoDB; 49INSERT IGNORE INTO t1 VALUES ('','0000-00-00 00:00:00',0); 50SELECT * FROM t1 WHERE b=''; 51SELECT * FROM t1 IGNORE KEY (b) WHERE b=''; 52SELECT * FROM t1 WHERE a=b; 53SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b; 54 55ALTER TABLE t1 ENGINE=MyISAM; 56SELECT * FROM t1 WHERE b=''; 57SELECT * FROM t1 IGNORE KEY (b) WHERE b=''; 58SELECT * FROM t1 WHERE a=b; 59SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b; 60DROP TABLE t1; 61 62# 63# MDEV-15570 Assertion `Item_cache_temporal::field_type() != MYSQL_TYPE_TIME' failed in Item_cache_temporal::val_datetime_packed 64# 65CREATE TABLE t1 (d DATE) ENGINE=InnoDB; 66INSERT INTO t1 VALUES ('2012-12-21'); 67SELECT * FROM t1 WHERE LEAST( UTC_TIME(), d ); 68DROP TABLE t1; 69 70--echo # 71--echo # MDEV-17969 Assertion `name' failed in THD::push_warning_truncated_value_for_field 72--echo # 73 74CREATE TABLE t1 (c1 DATE , c2 TIMESTAMP) ENGINE=InnoDB; 75INSERT INTO t1 VALUES ('2006-07-17','0000-00-00 00:00:00'); 76CREATE TABLE t2 (pk INT, a1 TIME) Engine=InnoDB; 77INSERT INTO t2 VALUES (6,'00:00:00'); 78SET SESSION sql_mode= 'strict_all_tables,no_zero_date'; 79--error ER_TRUNCATED_WRONG_VALUE 80CREATE TABLE tbl SELECT * FROM t1 WHERE t1.c1 = (SELECT c2 FROM t2 WHERE pk = 6); 81# ^^^ there is no column c2 in table t2 82DROP TABLE t1,t2; 83SET sql_mode=DEFAULT; 84 85--echo # 86--echo # End of 10.3 tests 87--echo # 88 89--echo # 90--echo # MDEV-19166 Assertion `!is_zero_datetime()' failed in Timestamp_or_zero_datetime::tv 91--echo # 92 93CREATE TABLE t1 (f TIMESTAMP DEFAULT 0) ENGINE=InnoDB; 94INSERT INTO t1 VALUES ('2024-02-29'); 95SELECT * FROM t1 WHERE SUBSTR(1 FROM BIT_LENGTH(f) FOR DEFAULT(f)); 96DROP TABLE t1; 97 98--echo # 99--echo # End of 10.4 tests 100--echo # 101