You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
WHERE COALESCE(time_column)=TIME('00:00:00')
AND COALESCE(time_column)=DATE('2015-09-11')
MDEV-8814 Wrong result for WHERE datetime_column > TIME('00:00:00')
Copy file name to clipboardExpand all lines: mysql-test/r/type_time.result
+184Lines changed: 184 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -969,5 +969,189 @@ Warnings:
969
969
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (coalesce(`test`.`t1`.`a`) = TIME'00:00:01')
970
970
DROP TABLE t1;
971
971
#
972
+
# MDEV-8793 Wrong result set for SELECT ... WHERE COALESCE(time_column)=TIME('00:00:00') AND COALESCE(time_column)=DATE('2015-09-11')
973
+
#
974
+
SET timestamp=UNIX_TIMESTAMP('2015-09-11 20:20:20');
975
+
CREATE TABLE t1 (a TIME);
976
+
INSERT INTO t1 VALUES('10:20:30'),('00:00:00');
977
+
SELECT * FROM t1 WHERE COALESCE(a)=TIME('00:00:00');
978
+
a
979
+
00:00:00
980
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE('2015-09-11');
981
+
a
982
+
00:00:00
983
+
# TIME cast + DATE cast
984
+
SELECT * FROM t1 WHERE COALESCE(a)=TIME('00:00:00') AND COALESCE(a)=DATE('2015-09-11');
985
+
a
986
+
00:00:00
987
+
EXPLAIN EXTENDED
988
+
SELECT * FROM t1 WHERE COALESCE(a)=TIME('00:00:00') AND COALESCE(a)=DATE('2015-09-11');
989
+
id select_type table type possible_keys key key_len ref rows filtered Extra
990
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
991
+
Warnings:
992
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (coalesce(`test`.`t1`.`a`) = <cache>(00:00:00))
993
+
# TIME cast + DATE literal
994
+
SELECT * FROM t1 WHERE COALESCE(a)=TIME('00:00:00') AND COALESCE(a)=DATE'2015-09-11';
995
+
a
996
+
00:00:00
997
+
EXPLAIN EXTENDED
998
+
SELECT * FROM t1 WHERE COALESCE(a)=TIME('00:00:00') AND COALESCE(a)=DATE'2015-09-11';
999
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1000
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1001
+
Warnings:
1002
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (coalesce(`test`.`t1`.`a`) = <cache>(00:00:00))
1003
+
# TIME literal + DATE cast
1004
+
SELECT * FROM t1 WHERE COALESCE(a)=TIME'00:00:00' AND COALESCE(a)=DATE('2015-09-11');
1005
+
a
1006
+
00:00:00
1007
+
EXPLAIN EXTENDED
1008
+
SELECT * FROM t1 WHERE COALESCE(a)=TIME'00:00:00' AND COALESCE(a)=DATE('2015-09-11');
1009
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1010
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1011
+
Warnings:
1012
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (coalesce(`test`.`t1`.`a`) = TIME'00:00:00')
1013
+
# TIME literal + DATE literal
1014
+
SELECT * FROM t1 WHERE COALESCE(a)=TIME'00:00:00' AND COALESCE(a)=DATE'2015-09-11';
1015
+
a
1016
+
00:00:00
1017
+
EXPLAIN EXTENDED
1018
+
SELECT * FROM t1 WHERE COALESCE(a)=TIME'00:00:00' AND COALESCE(a)=DATE'2015-09-11';
1019
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1020
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1021
+
Warnings:
1022
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (coalesce(`test`.`t1`.`a`) = TIME'00:00:00')
1023
+
# TIME-alike string literal + DATE cast
1024
+
SELECT * FROM t1 WHERE COALESCE(a)='00:00:00' AND COALESCE(a)=DATE('2015-09-11');
1025
+
a
1026
+
00:00:00
1027
+
EXPLAIN EXTENDED
1028
+
SELECT * FROM t1 WHERE COALESCE(a)='00:00:00' AND COALESCE(a)=DATE('2015-09-11');
1029
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1030
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1031
+
Warnings:
1032
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((coalesce(`test`.`t1`.`a`) = '00:00:00') and (coalesce(`test`.`t1`.`a`) = <cache>(2015-09-11 00:00:00)))
1033
+
# TIME-alike string literal + DATE literal
1034
+
SELECT * FROM t1 WHERE COALESCE(a)='00:00:00' AND COALESCE(a)=DATE'2015-09-11';
1035
+
a
1036
+
00:00:00
1037
+
EXPLAIN EXTENDED
1038
+
SELECT * FROM t1 WHERE COALESCE(a)='00:00:00' AND COALESCE(a)=DATE'2015-09-11';
1039
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1040
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1041
+
Warnings:
1042
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((coalesce(`test`.`t1`.`a`) = '00:00:00') and (coalesce(`test`.`t1`.`a`) = DATE'2015-09-11'))
1043
+
# TIME-alike integer literal + DATE cast
1044
+
SELECT * FROM t1 WHERE COALESCE(a)=0 AND COALESCE(a)=DATE('2015-09-11');
1045
+
a
1046
+
00:00:00
1047
+
EXPLAIN EXTENDED
1048
+
SELECT * FROM t1 WHERE COALESCE(a)=0 AND COALESCE(a)=DATE('2015-09-11');
1049
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1050
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1051
+
Warnings:
1052
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((coalesce(`test`.`t1`.`a`) = 0) and (coalesce(`test`.`t1`.`a`) = <cache>(2015-09-11 00:00:00)))
1053
+
# TIME-alike integer literal + DATE literal
1054
+
SELECT * FROM t1 WHERE COALESCE(a)=0 AND COALESCE(a)=DATE'2015-09-11';
1055
+
a
1056
+
00:00:00
1057
+
EXPLAIN EXTENDED
1058
+
SELECT * FROM t1 WHERE COALESCE(a)=0 AND COALESCE(a)=DATE'2015-09-11';
1059
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1060
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1061
+
Warnings:
1062
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((coalesce(`test`.`t1`.`a`) = 0) and (coalesce(`test`.`t1`.`a`) = DATE'2015-09-11'))
1063
+
# DATE cast + TIME cast
1064
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE('2015-09-11') AND COALESCE(a)=TIME('00:00:00');
1065
+
a
1066
+
00:00:00
1067
+
EXPLAIN EXTENDED
1068
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE('2015-09-11') AND COALESCE(a)=TIME('00:00:00');
1069
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1070
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1071
+
Warnings:
1072
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (coalesce(`test`.`t1`.`a`) = <cache>(2015-09-11 00:00:00))
1073
+
# DATE cast + TIME literal
1074
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE('2015-09-11') AND COALESCE(a)=TIME'00:00:00';
1075
+
a
1076
+
00:00:00
1077
+
EXPLAIN EXTENDED
1078
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE('2015-09-11') AND COALESCE(a)=TIME'00:00:00';
1079
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1080
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1081
+
Warnings:
1082
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (coalesce(`test`.`t1`.`a`) = <cache>(2015-09-11 00:00:00))
1083
+
# DATE cast + TIME-alike string literal
1084
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE('2015-09-11') AND COALESCE(a)='00:00:00';
1085
+
a
1086
+
00:00:00
1087
+
EXPLAIN EXTENDED
1088
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE('2015-09-11') AND COALESCE(a)='00:00:00';
1089
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1090
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1091
+
Warnings:
1092
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((coalesce(`test`.`t1`.`a`) = <cache>(2015-09-11 00:00:00)) and (coalesce(`test`.`t1`.`a`) = '00:00:00'))
1093
+
# DATE cast + TIME-alike integer literal
1094
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE('2015-09-11') AND COALESCE(a)=0;
1095
+
a
1096
+
00:00:00
1097
+
EXPLAIN EXTENDED
1098
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE('2015-09-11') AND COALESCE(a)=0;
1099
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1100
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1101
+
Warnings:
1102
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((coalesce(`test`.`t1`.`a`) = <cache>(2015-09-11 00:00:00)) and (coalesce(`test`.`t1`.`a`) = 0))
1103
+
# DATE literal + TIME cast
1104
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE'2015-09-11' AND COALESCE(a)=TIME('00:00:00');
1105
+
a
1106
+
00:00:00
1107
+
EXPLAIN EXTENDED
1108
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE'2015-09-11' AND COALESCE(a)=TIME('00:00:00');
1109
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1110
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1111
+
Warnings:
1112
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (coalesce(`test`.`t1`.`a`) = DATE'2015-09-11')
1113
+
# DATE literal + TIME literal
1114
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE'2015-09-11' AND COALESCE(a)=TIME'00:00:00';
1115
+
a
1116
+
00:00:00
1117
+
EXPLAIN EXTENDED
1118
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE'2015-09-11' AND COALESCE(a)=TIME'00:00:00';
1119
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1120
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1121
+
Warnings:
1122
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where (coalesce(`test`.`t1`.`a`) = DATE'2015-09-11')
1123
+
# DATE literal + TIME-alike string literal
1124
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE'2015-09-11' AND COALESCE(a)='00:00:00';
1125
+
a
1126
+
00:00:00
1127
+
EXPLAIN EXTENDED
1128
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE'2015-09-11' AND COALESCE(a)='00:00:00';
1129
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1130
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1131
+
Warnings:
1132
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((coalesce(`test`.`t1`.`a`) = DATE'2015-09-11') and (coalesce(`test`.`t1`.`a`) = '00:00:00'))
1133
+
# DATE literal + TIME-alike integer literal
1134
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE'2015-09-11' AND COALESCE(a)=0;
1135
+
a
1136
+
00:00:00
1137
+
EXPLAIN EXTENDED
1138
+
SELECT * FROM t1 WHERE COALESCE(a)=DATE'2015-09-11' AND COALESCE(a)=0;
1139
+
id select_type table type possible_keys key key_len ref rows filtered Extra
1140
+
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 100.00 Using where
1141
+
Warnings:
1142
+
Note 1003 select `test`.`t1`.`a` AS `a` from `test`.`t1` where ((coalesce(`test`.`t1`.`a`) = DATE'2015-09-11') and (coalesce(`test`.`t1`.`a`) = 0))
1143
+
DROP TABLE t1;
1144
+
SET timestamp=DEFAULT;
1145
+
#
1146
+
# MDEV-8814 Wrong result for WHERE datetime_column > TIME('00:00:00')
1147
+
#
1148
+
CREATE TABLE t1 (a DATETIME);
1149
+
INSERT INTO t1 VALUES ('2000-09-12 00:00:00'), ('2007-04-25 05:08:49');
0 commit comments