Skip to content
/ server Public

Commit 2c983b5

Browse files
committed
MDEV-38006 Inconsistent behaviors when casting into time
number-to-time conversion was too eagerly capping the value. A string "9000090" was invalid time, because of 90 seconds. But number-to-time was capping first, validating later, to 9000090->time worked. Let's fix it. also, let's make invalid time values in a string field include the field name in the warning message, just like invalid time values in a numeric field do.
1 parent 5349220 commit 2c983b5

32 files changed

+1071
-958
lines changed

mysql-test/main/ctype_latin1.result

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8160,12 +8160,12 @@ SELECT * FROM t1 WHERE (a,a)=('2001-01-01x',DATE'2001-01-01');
81608160
a
81618161
2001-01-01x
81628162
Warnings:
8163-
Warning 1292 Truncated incorrect date value: '2001-01-01x'
8163+
Warning 1292 Incorrect date value: '2001-01-01x' for column `test`.`t1`.`a` at row 2
81648164
SELECT * FROM t1 WHERE (a,a)=(DATE'2001-01-01','2001-01-01x');
81658165
a
81668166
2001-01-01x
81678167
Warnings:
8168-
Warning 1292 Truncated incorrect date value: '2001-01-01x'
8168+
Warning 1292 Incorrect date value: '2001-01-01x' for column `test`.`t1`.`a` at row 2
81698169
SELECT * FROM t1 WHERE (a,a)=('2001-01-01',DATE'2001-01-01');
81708170
a
81718171
2001-01-01
@@ -8185,12 +8185,12 @@ SELECT * FROM t1 WHERE (a,a)=('2001-01-01x',DATE'2001-01-01');
81858185
a
81868186
2001-01-01x
81878187
Warnings:
8188-
Warning 1292 Truncated incorrect date value: '2001-01-01x'
8188+
Warning 1292 Incorrect date value: '2001-01-01x' for column `test`.`t1`.`a` at row 2
81898189
SELECT * FROM t1 WHERE (a,a)=(DATE'2001-01-01','2001-01-01x');
81908190
a
81918191
2001-01-01x
81928192
Warnings:
8193-
Warning 1292 Truncated incorrect date value: '2001-01-01x'
8193+
Warning 1292 Incorrect date value: '2001-01-01x' for column `test`.`t1`.`a` at row 2
81948194
SELECT * FROM t1 WHERE (a,a)=('2001-01-01',DATE'2001-01-01');
81958195
a
81968196
2001-01-01

mysql-test/main/dyncol.result

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1427,9 +1427,9 @@ SELECT
14271427
column_get(column_create(1, -999999999999999 AS int), 1 AS TIME) AS t1,
14281428
column_get(column_create(1, -9223372036854775808 AS int), 1 AS TIME) AS t2;
14291429
t1 t2
1430-
-838:59:59 -838:59:59
1430+
NULL -838:59:59
14311431
Warnings:
1432-
Warning 1292 Truncated incorrect time value: '-999999999999999'
1432+
Warning 1292 Incorrect time value: '-999999999999999'
14331433
Warning 1292 Truncated incorrect time value: '-9223372036854775808'
14341434
#
14351435
# end of 5.3 tests

mysql-test/main/func_extract.result

Lines changed: 62 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -74,16 +74,22 @@ INSERT INTO t1 VALUES
7474
# Expect empty sets
7575
SELECT a, b, EXTRACT(DAY_HOUR FROM a), EXTRACT(DAY_HOUR FROM b) FROM t1 WHERE NOT (EXTRACT(DAY_HOUR FROM a)<=>EXTRACT(DAY_HOUR FROM b));
7676
a b EXTRACT(DAY_HOUR FROM a) EXTRACT(DAY_HOUR FROM b)
77+
0.999999 0.999999000 0 NULL
7778
SELECT a, b, EXTRACT(DAY FROM a), EXTRACT(DAY FROM b) FROM t1 WHERE NOT (EXTRACT(DAY FROM a)<=>EXTRACT(DAY FROM b));
7879
a b EXTRACT(DAY FROM a) EXTRACT(DAY FROM b)
80+
0.999999 0.999999000 0 NULL
7981
SELECT a, b, EXTRACT(HOUR FROM a), EXTRACT(HOUR FROM b) FROM t1 WHERE NOT (EXTRACT(HOUR FROM a)<=>EXTRACT(HOUR FROM b));
8082
a b EXTRACT(HOUR FROM a) EXTRACT(HOUR FROM b)
83+
0.999999 0.999999000 0 NULL
8184
SELECT a, b, EXTRACT(MINUTE FROM a), EXTRACT(MINUTE FROM b) FROM t1 WHERE NOT (EXTRACT(MINUTE FROM a)<=>EXTRACT(MINUTE FROM b));
8285
a b EXTRACT(MINUTE FROM a) EXTRACT(MINUTE FROM b)
86+
0.999999 0.999999000 0 NULL
8387
SELECT a, b, EXTRACT(SECOND FROM a), EXTRACT(SECOND FROM b) FROM t1 WHERE NOT (EXTRACT(SECOND FROM a)<=>EXTRACT(SECOND FROM b));
8488
a b EXTRACT(SECOND FROM a) EXTRACT(SECOND FROM b)
89+
0.999999 0.999999000 0 NULL
8590
SELECT a, b, EXTRACT(MICROSECOND FROM a), EXTRACT(MICROSECOND FROM b) FROM t1 WHERE NOT (EXTRACT(MICROSECOND FROM a)<=>EXTRACT(MICROSECOND FROM b));
8691
a b EXTRACT(MICROSECOND FROM a) EXTRACT(MICROSECOND FROM b)
92+
0.999999 0.999999000 999999 NULL
8793
# Detailed results
8894
SELECT
8995
a,
@@ -118,32 +124,32 @@ Warnings:
118124
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '9999-12-31 23:59:59.123456'
119125
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '2001-01-01 10:20:30.123456'
120126
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '4294967296:59:59.123456'
121-
Warning 1292 Incorrect interval value: '4294967296:59:59.123456'
122-
Warning 1292 Incorrect interval value: '4294967296:59:59.123456'
123-
Warning 1292 Incorrect interval value: '4294967296:59:59.123456'
124-
Warning 1292 Incorrect interval value: '4294967296:59:59.123456'
125-
Warning 1292 Incorrect interval value: '4294967296:59:59.123456'
126-
Warning 1292 Incorrect interval value: '4294967296:59:59.123456'
127-
Warning 1292 Incorrect interval value: '4294967296:59:59.123456'
128-
Warning 1292 Incorrect interval value: '4294967296:59:59.123456'
127+
Warning 1292 Incorrect interval value: '4294967296:59:59.123456' for column `test`.`t1`.`a` at row 3
128+
Warning 1292 Incorrect interval value: '4294967296:59:59.123456' for column `test`.`t1`.`a` at row 3
129+
Warning 1292 Incorrect interval value: '4294967296:59:59.123456' for column `test`.`t1`.`a` at row 3
130+
Warning 1292 Incorrect interval value: '4294967296:59:59.123456' for column `test`.`t1`.`a` at row 3
131+
Warning 1292 Incorrect interval value: '4294967296:59:59.123456' for column `test`.`t1`.`a` at row 3
132+
Warning 1292 Incorrect interval value: '4294967296:59:59.123456' for column `test`.`t1`.`a` at row 3
133+
Warning 1292 Incorrect interval value: '4294967296:59:59.123456' for column `test`.`t1`.`a` at row 3
134+
Warning 1292 Incorrect interval value: '4294967296:59:59.123456' for column `test`.`t1`.`a` at row 3
129135
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '4294967295:59:59.123456'
130-
Warning 1292 Incorrect interval value: '4294967295:59:59.123456'
131-
Warning 1292 Incorrect interval value: '4294967295:59:59.123456'
132-
Warning 1292 Incorrect interval value: '4294967295:59:59.123456'
133-
Warning 1292 Incorrect interval value: '4294967295:59:59.123456'
134-
Warning 1292 Incorrect interval value: '4294967295:59:59.123456'
135-
Warning 1292 Incorrect interval value: '4294967295:59:59.123456'
136-
Warning 1292 Incorrect interval value: '4294967295:59:59.123456'
137-
Warning 1292 Incorrect interval value: '4294967295:59:59.123456'
136+
Warning 1292 Incorrect interval value: '4294967295:59:59.123456' for column `test`.`t1`.`a` at row 4
137+
Warning 1292 Incorrect interval value: '4294967295:59:59.123456' for column `test`.`t1`.`a` at row 4
138+
Warning 1292 Incorrect interval value: '4294967295:59:59.123456' for column `test`.`t1`.`a` at row 4
139+
Warning 1292 Incorrect interval value: '4294967295:59:59.123456' for column `test`.`t1`.`a` at row 4
140+
Warning 1292 Incorrect interval value: '4294967295:59:59.123456' for column `test`.`t1`.`a` at row 4
141+
Warning 1292 Incorrect interval value: '4294967295:59:59.123456' for column `test`.`t1`.`a` at row 4
142+
Warning 1292 Incorrect interval value: '4294967295:59:59.123456' for column `test`.`t1`.`a` at row 4
143+
Warning 1292 Incorrect interval value: '4294967295:59:59.123456' for column `test`.`t1`.`a` at row 4
138144
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '87649416:59:59.123456'
139-
Warning 1292 Incorrect interval value: '87649416:59:59.123456'
140-
Warning 1292 Incorrect interval value: '87649416:59:59.123456'
141-
Warning 1292 Incorrect interval value: '87649416:59:59.123456'
142-
Warning 1292 Incorrect interval value: '87649416:59:59.123456'
143-
Warning 1292 Incorrect interval value: '87649416:59:59.123456'
144-
Warning 1292 Incorrect interval value: '87649416:59:59.123456'
145-
Warning 1292 Incorrect interval value: '87649416:59:59.123456'
146-
Warning 1292 Incorrect interval value: '87649416:59:59.123456'
145+
Warning 1292 Incorrect interval value: '87649416:59:59.123456' for column `test`.`t1`.`a` at row 5
146+
Warning 1292 Incorrect interval value: '87649416:59:59.123456' for column `test`.`t1`.`a` at row 5
147+
Warning 1292 Incorrect interval value: '87649416:59:59.123456' for column `test`.`t1`.`a` at row 5
148+
Warning 1292 Incorrect interval value: '87649416:59:59.123456' for column `test`.`t1`.`a` at row 5
149+
Warning 1292 Incorrect interval value: '87649416:59:59.123456' for column `test`.`t1`.`a` at row 5
150+
Warning 1292 Incorrect interval value: '87649416:59:59.123456' for column `test`.`t1`.`a` at row 5
151+
Warning 1292 Incorrect interval value: '87649416:59:59.123456' for column `test`.`t1`.`a` at row 5
152+
Warning 1292 Incorrect interval value: '87649416:59:59.123456' for column `test`.`t1`.`a` at row 5
147153
SELECT
148154
b,
149155
CAST(b AS INTERVAL DAY_SECOND(6)) AS cidm,
@@ -166,7 +172,7 @@ b cidm dh EXTRACT(DAY_HOUR FROM b) EXTRACT(DAY FROM b) EXTRACT(HOUR FROM b) EXTR
166172
99995959.123456000 416 15:59:59.123456 9999 41615 416 15 59 59 123456
167173
99990101.123456000 416 15:01:01.123456 9999 41615 416 15 1 1 123456
168174
99990101.000000000 416 15:01:01.000000 9999 41615 416 15 1 1 0
169-
0.999999000 00:00:00.999999 0 0 0 0 0 0 999999
175+
0.999999000 00:00:00.999999 NULL NULL NULL NULL NULL NULL NULL
170176
0.999990000 00:00:00.999990 0 0 0 0 0 0 999990
171177
0.999900000 00:00:00.999900 0 0 0 0 0 0 999900
172178
0.999000000 00:00:00.999000 0 0 0 0 0 0 999000
@@ -209,6 +215,14 @@ Note 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '99995959.123456000'
209215
Note 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '99990101.123456000'
210216
Note 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '99990101.000000000'
211217
Note 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '0.999999000'
218+
Warning 1292 Incorrect interval value: '0.999999000' for column `test`.`t1`.`b` at row 11
219+
Warning 1292 Incorrect interval value: '0.999999000' for column `test`.`t1`.`b` at row 11
220+
Warning 1292 Incorrect interval value: '0.999999000' for column `test`.`t1`.`b` at row 11
221+
Warning 1292 Incorrect interval value: '0.999999000' for column `test`.`t1`.`b` at row 11
222+
Warning 1292 Incorrect interval value: '0.999999000' for column `test`.`t1`.`b` at row 11
223+
Warning 1292 Incorrect interval value: '0.999999000' for column `test`.`t1`.`b` at row 11
224+
Warning 1292 Incorrect interval value: '0.999999000' for column `test`.`t1`.`b` at row 11
225+
Warning 1292 Incorrect interval value: '0.999999000' for column `test`.`t1`.`b` at row 11
212226
Note 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '0.999990000'
213227
Note 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '0.999900000'
214228
Note 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '0.999000000'
@@ -252,15 +266,15 @@ a cidm EXTRACT(DAY_HOUR FROM a) EXTRACT(DAY_MINUTE FROM a) EXTRACT(DAY_SECOND FR
252266
NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
253267
Warnings:
254268
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: ''
255-
Warning 1292 Incorrect interval value: ''
256-
Warning 1292 Incorrect interval value: ''
257-
Warning 1292 Incorrect interval value: ''
258-
Warning 1292 Incorrect interval value: ''
259-
Warning 1292 Incorrect interval value: ''
260-
Warning 1292 Incorrect interval value: ''
261-
Warning 1292 Incorrect interval value: ''
262-
Warning 1292 Incorrect interval value: ''
263-
Warning 1292 Incorrect interval value: ''
269+
Warning 1292 Incorrect interval value: '' for column `test`.`t1`.`a` at row 1
270+
Warning 1292 Incorrect interval value: '' for column `test`.`t1`.`a` at row 1
271+
Warning 1292 Incorrect interval value: '' for column `test`.`t1`.`a` at row 1
272+
Warning 1292 Incorrect interval value: '' for column `test`.`t1`.`a` at row 1
273+
Warning 1292 Incorrect interval value: '' for column `test`.`t1`.`a` at row 1
274+
Warning 1292 Incorrect interval value: '' for column `test`.`t1`.`a` at row 1
275+
Warning 1292 Incorrect interval value: '' for column `test`.`t1`.`a` at row 1
276+
Warning 1292 Incorrect interval value: '' for column `test`.`t1`.`a` at row 1
277+
Warning 1292 Incorrect interval value: '' for column `test`.`t1`.`a` at row 1
264278
DROP TABLE t1;
265279
# Backward compatibility
266280
# This still parses as DATETIME
@@ -568,26 +582,26 @@ EXTRACT(DAY FROM a) EXTRACT(DAY_SECOND FROM a) a cidm
568582
0 10203 01:02:03/ 01:02:03.000000
569583
20 20102030 20 10:20:30 20 10:20:30.000000
570584
Warnings:
571-
Warning 1292 Truncated incorrect time value: '2024:01:03 garbage /////'
572-
Warning 1292 Truncated incorrect time value: '2024:01:03 garbage /////'
585+
Warning 1292 Incorrect time value: '2024:01:03 garbage /////' for column `test`.`t1`.`a` at row 1
586+
Warning 1292 Incorrect time value: '2024:01:03 garbage /////' for column `test`.`t1`.`a` at row 1
573587
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '2024:01:03 garbage /////'
574-
Warning 1292 Truncated incorrect time value: '24:01:03 garbage /////'
575-
Warning 1292 Truncated incorrect time value: '24:01:03 garbage /////'
588+
Warning 1292 Incorrect time value: '24:01:03 garbage /////' for column `test`.`t1`.`a` at row 2
589+
Warning 1292 Incorrect time value: '24:01:03 garbage /////' for column `test`.`t1`.`a` at row 2
576590
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '24:01:03 garbage /////'
577-
Warning 1292 Truncated incorrect time value: '01:01:03 garbage /////'
578-
Warning 1292 Truncated incorrect time value: '01:01:03 garbage /////'
591+
Warning 1292 Incorrect time value: '01:01:03 garbage /////' for column `test`.`t1`.`a` at row 3
592+
Warning 1292 Incorrect time value: '01:01:03 garbage /////' for column `test`.`t1`.`a` at row 3
579593
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '01:01:03 garbage /////'
580-
Warning 1292 Truncated incorrect time value: '01:02:03:'
581-
Warning 1292 Truncated incorrect time value: '01:02:03:'
594+
Warning 1292 Incorrect time value: '01:02:03:' for column `test`.`t1`.`a` at row 8
595+
Warning 1292 Incorrect time value: '01:02:03:' for column `test`.`t1`.`a` at row 8
582596
Warning 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '01:02:03:'
583-
Warning 1292 Truncated incorrect time value: '01:02:03-'
584-
Warning 1292 Truncated incorrect time value: '01:02:03-'
597+
Warning 1292 Incorrect time value: '01:02:03-' for column `test`.`t1`.`a` at row 9
598+
Warning 1292 Incorrect time value: '01:02:03-' for column `test`.`t1`.`a` at row 9
585599
Warning 1292 Incorrect INTERVAL DAY TO SECOND value: '01:02:03-'
586-
Warning 1292 Truncated incorrect time value: '01:02:03;'
587-
Warning 1292 Truncated incorrect time value: '01:02:03;'
600+
Warning 1292 Incorrect time value: '01:02:03;' for column `test`.`t1`.`a` at row 10
601+
Warning 1292 Incorrect time value: '01:02:03;' for column `test`.`t1`.`a` at row 10
588602
Warning 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '01:02:03;'
589-
Warning 1292 Truncated incorrect time value: '01:02:03/'
590-
Warning 1292 Truncated incorrect time value: '01:02:03/'
603+
Warning 1292 Incorrect time value: '01:02:03/' for column `test`.`t1`.`a` at row 11
604+
Warning 1292 Incorrect time value: '01:02:03/' for column `test`.`t1`.`a` at row 11
591605
Warning 1292 Truncated incorrect INTERVAL DAY TO SECOND value: '01:02:03/'
592606
DROP TABLE t1;
593607
#

mysql-test/main/func_hybrid_type.result

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3456,26 +3456,26 @@ SELECT DISTINCT - GREATEST( b, CAST( NULL AS DATETIME ) ) AS f FROM t1;
34563456
f
34573457
NULL
34583458
Warnings:
3459-
Warning 1292 Truncated incorrect datetime value: 'foo'
3460-
Warning 1292 Truncated incorrect datetime value: 'bar'
3459+
Warning 1292 Incorrect datetime value: 'foo' for column `test`.`t1`.`b` at row 1
3460+
Warning 1292 Incorrect datetime value: 'bar' for column `test`.`t1`.`b` at row 2
34613461
DROP TABLE t1;
34623462
CREATE TABLE t1 (b LONGBLOB);
34633463
INSERT IGNORE INTO t1 VALUES ('foo'),('bar');
34643464
SELECT DISTINCT - GREATEST( b, CAST( NULL AS TIME) ) AS f FROM t1;
34653465
f
34663466
NULL
34673467
Warnings:
3468-
Warning 1292 Incorrect time value: 'foo'
3469-
Warning 1292 Incorrect time value: 'bar'
3468+
Warning 1292 Incorrect time value: 'foo' for column `test`.`t1`.`b` at row 1
3469+
Warning 1292 Incorrect time value: 'bar' for column `test`.`t1`.`b` at row 2
34703470
DROP TABLE t1;
34713471
CREATE TABLE t1 (b LONGBLOB);
34723472
INSERT IGNORE INTO t1 VALUES ('foo'),('bar');
34733473
SELECT DISTINCT - GREATEST( b, CAST( NULL AS DATE) ) AS f FROM t1;
34743474
f
34753475
NULL
34763476
Warnings:
3477-
Warning 1292 Truncated incorrect datetime value: 'foo'
3478-
Warning 1292 Truncated incorrect datetime value: 'bar'
3477+
Warning 1292 Incorrect datetime value: 'foo' for column `test`.`t1`.`b` at row 1
3478+
Warning 1292 Incorrect datetime value: 'bar' for column `test`.`t1`.`b` at row 2
34793479
DROP TABLE t1;
34803480
#
34813481
# End of 10.1 tests

mysql-test/main/func_time.result

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -501,12 +501,12 @@ SELECT month(updated) from t1;
501501
month(updated)
502502
NULL
503503
Warnings:
504-
Warning 1292 Incorrect datetime value: ''
504+
Warning 1292 Incorrect datetime value: '' for column `test`.`t1`.`updated` at row 1
505505
SELECT year(updated) from t1;
506506
year(updated)
507507
NULL
508508
Warnings:
509-
Warning 1292 Incorrect datetime value: ''
509+
Warning 1292 Incorrect datetime value: '' for column `test`.`t1`.`updated` at row 1
510510
drop table t1;
511511
create table t1 (d date, dt datetime, t timestamp, c char(10));
512512
insert into t1 values ("0000-00-00", "0000-00-00", "0000-00-00", "0000-00-00");
@@ -515,7 +515,7 @@ dayofyear("0000-00-00") dayofyear(d) dayofyear(dt) dayofyear(t) dayofyear(c)
515515
NULL NULL NULL NULL NULL
516516
Warnings:
517517
Warning 1292 Incorrect datetime value: '0000-00-00'
518-
Warning 1292 Incorrect datetime value: '0000-00-00'
518+
Warning 1292 Incorrect datetime value: '0000-00-00' for column `test`.`t1`.`c` at row 1
519519
select dayofmonth("0000-00-00"),dayofmonth(d),dayofmonth(dt),dayofmonth(t),dayofmonth(c) from t1;
520520
dayofmonth("0000-00-00") dayofmonth(d) dayofmonth(dt) dayofmonth(t) dayofmonth(c)
521521
0 0 0 0 0
@@ -530,7 +530,7 @@ week("0000-00-00") week(d) week(dt) week(t) week(c)
530530
NULL NULL NULL NULL NULL
531531
Warnings:
532532
Warning 1292 Incorrect datetime value: '0000-00-00'
533-
Warning 1292 Incorrect datetime value: '0000-00-00'
533+
Warning 1292 Incorrect datetime value: '0000-00-00' for column `test`.`t1`.`c` at row 1
534534
select year("0000-00-00"),year(d),year(dt),year(t),year(c) from t1;
535535
year("0000-00-00") year(d) year(dt) year(t) year(c)
536536
0 0 0 0 0
@@ -539,13 +539,13 @@ yearweek("0000-00-00") yearweek(d) yearweek(dt) yearweek(t) yearweek(c)
539539
NULL NULL NULL NULL NULL
540540
Warnings:
541541
Warning 1292 Incorrect datetime value: '0000-00-00'
542-
Warning 1292 Incorrect datetime value: '0000-00-00'
542+
Warning 1292 Incorrect datetime value: '0000-00-00' for column `test`.`t1`.`c` at row 1
543543
select to_days("0000-00-00"),to_days(d),to_days(dt),to_days(t),to_days(c) from t1;
544544
to_days("0000-00-00") to_days(d) to_days(dt) to_days(t) to_days(c)
545545
NULL NULL NULL NULL NULL
546546
Warnings:
547547
Warning 1292 Incorrect datetime value: '0000-00-00'
548-
Warning 1292 Incorrect datetime value: '0000-00-00'
548+
Warning 1292 Incorrect datetime value: '0000-00-00' for column `test`.`t1`.`c` at row 1
549549
select extract(MONTH FROM "0000-00-00"),extract(MONTH FROM d),extract(MONTH FROM dt),extract(MONTH FROM t),extract(MONTH FROM c) from t1;
550550
extract(MONTH FROM "0000-00-00") extract(MONTH FROM d) extract(MONTH FROM dt) extract(MONTH FROM t) extract(MONTH FROM c)
551551
0 0 0 0 0
@@ -1386,9 +1386,9 @@ SELECT COUNT(*) FROM t1 GROUP BY TIME_TO_SEC(a);
13861386
COUNT(*)
13871387
2
13881388
Warnings:
1389-
Warning 1292 Incorrect time value: ''
1390-
Warning 1292 Incorrect time value: ''
1391-
Warning 1292 Incorrect time value: ''
1389+
Warning 1292 Incorrect time value: '' for column `test`.`t1`.`a` at row 1
1390+
Warning 1292 Incorrect time value: '' for column `test`.`t1`.`a` at row 1
1391+
Warning 1292 Incorrect time value: '' for column `test`.`t1`.`a` at row 2
13921392
DROP TABLE t1;
13931393
#
13941394
# Bug#11766112 59151:UNINITIALIZED VALUES IN EXTRACT_DATE_TIME WITH STR_TO_DATE(SPACE(..) ...
@@ -6435,6 +6435,20 @@ a
64356435
NULL
64366436
SET @@time_zone=DEFAULT;
64376437
DROP TABLE t1;
6438-
#
64396438
# End of 10.5 tests
64406439
#
6440+
# MDEV-38006 Inconsistent behaviors when casting into time
6441+
#
6442+
create table t1 (c1 char(20), c2 mediumint unsigned);
6443+
insert into t1 values (9430886, 9430886), (9430816, 9430816);
6444+
select cast(c1 as time), cast(c2 as time) from t1;
6445+
cast(c1 as time) cast(c2 as time)
6446+
NULL NULL
6447+
838:59:59 838:59:59
6448+
Warnings:
6449+
Warning 1292 Incorrect time value: '9430886' for column `test`.`t1`.`c1` at row 1
6450+
Warning 1292 Incorrect time value: '9430886' for column `test`.`t1`.`c2` at row 1
6451+
Warning 1292 Incorrect time value: '9430816' for column `test`.`t1`.`c1` at row 2
6452+
Warning 1292 Incorrect time value: '9430816' for column `test`.`t1`.`c2` at row 2
6453+
drop table t1;
6454+
# End of 10.11 tests

mysql-test/main/func_time.test

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3277,6 +3277,14 @@ SELECT UNIX_TIMESTAMP(MAX(a)) AS a FROM t1;
32773277
SET @@time_zone=DEFAULT;
32783278
DROP TABLE t1;
32793279

3280-
--echo #
32813280
--echo # End of 10.5 tests
3281+
3282+
--echo #
3283+
--echo # MDEV-38006 Inconsistent behaviors when casting into time
32823284
--echo #
3285+
create table t1 (c1 char(20), c2 mediumint unsigned);
3286+
insert into t1 values (9430886, 9430886), (9430816, 9430816);
3287+
select cast(c1 as time), cast(c2 as time) from t1;
3288+
drop table t1;
3289+
3290+
--echo # End of 10.11 tests

0 commit comments

Comments
 (0)