Commit ea5cda52 authored by Alexander Barkov's avatar Alexander Barkov

MDEV-18402 Assertion `sec.sec() <= 59' failed in Item_func_maketime::get_date

parent b9ea778f
......@@ -6336,3 +6336,12 @@ Warnings:
Warning 1292 Truncated incorrect DECIMAL value: 'foo'
Warning 1292 Truncated incorrect DECIMAL value: 'foo'
SET time_zone=DEFAULT;
#
# MDEV-18402 Assertion `sec.sec() <= 59' failed in Item_func_maketime::get_date
#
SELECT MAKETIME('01', '01', LEAST( -100, NULL ));
MAKETIME('01', '01', LEAST( -100, NULL ))
NULL
SELECT CONCAT(MAKETIME('01', '01', LEAST( -100, NULL )));
CONCAT(MAKETIME('01', '01', LEAST( -100, NULL )))
NULL
......@@ -3162,3 +3162,11 @@ SELECT TIME('- 01:00:00'), TIME('- 1 01:00:00');
SET time_zone='+00:00';
SELECT NULLIF(FROM_UNIXTIME('foo'), '2012-12-12 21:10:14');
SET time_zone=DEFAULT;
--echo #
--echo # MDEV-18402 Assertion `sec.sec() <= 59' failed in Item_func_maketime::get_date
--echo #
SELECT MAKETIME('01', '01', LEAST( -100, NULL ));
SELECT CONCAT(MAKETIME('01', '01', LEAST( -100, NULL )));
......@@ -2595,7 +2595,7 @@ bool Item_func_maketime::get_date(THD *thd, MYSQL_TIME *ltime, date_mode_t fuzzy
longlong minute= args[1]->val_int();
VSec9 sec(thd, args[2], "seconds", 59);
DBUG_ASSERT(sec.sec() <= 59);
DBUG_ASSERT(sec.is_null() || sec.sec() <= 59);
if (args[0]->null_value || args[1]->null_value || sec.is_null() ||
minute < 0 || minute > 59 || sec.neg() || sec.truncated())
return (null_value= 1);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment