summaryrefslogtreecommitdiff
path: root/mysql-test/main/type_temporal_innodb.test
blob: 4adaa483ca2351195f8f9e5bb997059f7a5a4ad5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
--source include/have_innodb.inc

#
# testing of temporal data types with InnoDB
#


--echo #
--echo # MDEV-9604 crash in Item::save_in_field with empty enum value
--echo #

SELECT TIME'00:00:00'='';

CREATE TABLE t1 (a ENUM('a'), b TIME, c INT, KEY(b)) ENGINE=InnoDB;
INSERT IGNORE INTO t1 VALUES ('','00:00:00',0);
SELECT * FROM t1 WHERE b='';
SELECT * FROM t1 IGNORE KEY (b) WHERE b='';
SELECT * FROM t1 WHERE a=b;
SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b;

ALTER TABLE t1 ENGINE=MyISAM;
SELECT * FROM t1 WHERE b='';
SELECT * FROM t1 IGNORE KEY (b) WHERE b='';
SELECT * FROM t1 WHERE a=b;
SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b;
DROP TABLE t1;


SELECT DATE'0000-00-00'='';

CREATE TABLE t1 (a ENUM('a'), b DATE, c INT, KEY(b)) ENGINE=InnoDB;
INSERT IGNORE INTO t1 VALUES ('','0000-00-00',0);
SELECT * FROM t1 WHERE b='';
SELECT * FROM t1 IGNORE KEY (b) WHERE b='';
SELECT * FROM t1 WHERE a=b;
SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b;

ALTER TABLE t1 ENGINE=MyISAM;
SELECT * FROM t1 WHERE b='';
SELECT * FROM t1 IGNORE KEY (b) WHERE b='';
SELECT * FROM t1 WHERE a=b;
SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b;
DROP TABLE t1;


SELECT TIMESTAMP'0000-00-00 00:00:00'='';

CREATE TABLE t1 (a ENUM('a'), b DATETIME, c INT, KEY(b)) ENGINE=InnoDB;
INSERT IGNORE INTO t1 VALUES ('','0000-00-00 00:00:00',0);
SELECT * FROM t1 WHERE b='';
SELECT * FROM t1 IGNORE KEY (b) WHERE b='';
SELECT * FROM t1 WHERE a=b;
SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b;

ALTER TABLE t1 ENGINE=MyISAM;
SELECT * FROM t1 WHERE b='';
SELECT * FROM t1 IGNORE KEY (b) WHERE b='';
SELECT * FROM t1 WHERE a=b;
SELECT 1 FROM t1 WHERE (SELECT a FROM t1 group by c) = b;
DROP TABLE t1;

#
# MDEV-15570 Assertion `Item_cache_temporal::field_type() != MYSQL_TYPE_TIME' failed in Item_cache_temporal::val_datetime_packed
#
CREATE TABLE t1 (d DATE) ENGINE=InnoDB;
INSERT INTO t1 VALUES ('2012-12-21');
SELECT * FROM t1 WHERE LEAST( UTC_TIME(), d );
DROP TABLE t1;

--echo #
--echo # MDEV-17969 Assertion `name' failed in THD::push_warning_truncated_value_for_field
--echo #

CREATE TABLE t1 (c1 DATE , c2 TIMESTAMP) ENGINE=InnoDB;
INSERT INTO t1  VALUES ('2006-07-17','0000-00-00 00:00:00');
CREATE TABLE t2 (pk INT, a1 TIME) Engine=InnoDB;
INSERT INTO t2 VALUES (6,'00:00:00');
SET SESSION sql_mode= 'strict_all_tables,no_zero_date';
--error ER_TRUNCATED_WRONG_VALUE
CREATE TABLE tbl SELECT * FROM t1 WHERE t1.c1 = (SELECT c2 FROM t2 WHERE pk = 6);
# ^^^ there is no column c2 in table t2
DROP TABLE t1,t2;
SET sql_mode=DEFAULT;

--echo #
--echo # End of 10.3 tests
--echo #

--echo #
--echo # MDEV-19166 Assertion `!is_zero_datetime()' failed in Timestamp_or_zero_datetime::tv
--echo #

CREATE TABLE t1 (f TIMESTAMP DEFAULT 0) ENGINE=InnoDB;
INSERT INTO t1 VALUES ('2024-02-29');
SELECT * FROM t1 WHERE SUBSTR(1 FROM BIT_LENGTH(f) FOR DEFAULT(f));
DROP TABLE t1;

--echo #
--echo # End of 10.4 tests
--echo #