Commit 1be42956 authored by Sergei Golubchik's avatar Sergei Golubchik

MDEV-4293 Valgrind warnings (Conditional jump or move depends on uninitialised...

MDEV-4293 Valgrind warnings (Conditional jump or move depends on uninitialised value) in remove_eq_conds on time functions with NULL argument

val_int() is expected to return 0 for NULL's
parent 8f607aae
...@@ -1898,3 +1898,15 @@ microsecond('12:00:00.123456') microsecond('2009-12-31 23:59:59.000010') ...@@ -1898,3 +1898,15 @@ microsecond('12:00:00.123456') microsecond('2009-12-31 23:59:59.000010')
123456 10 123456 10
select now(258); select now(258);
ERROR 42000: Too big precision 258 specified for 'now'. Maximum is 6. ERROR 42000: Too big precision 258 specified for 'now'. Maximum is 6.
SELECT 1 FROM DUAL WHERE YEAR(TIMEDIFF(NULL, '12:12:12'));
1
SELECT 1 FROM DUAL WHERE MONTH(TIMEDIFF(NULL, '12:12:12'));
1
SELECT 1 FROM DUAL WHERE DAYOFMONTH(TIMEDIFF(NULL, '12:12:12'));
1
SELECT 1 FROM DUAL WHERE HOUR(TIMEDIFF(NULL, '12:12:12'));
1
SELECT 1 FROM DUAL WHERE MINUTE(TIMEDIFF(NULL, '12:12:12'));
1
SELECT 1 FROM DUAL WHERE SECOND(TIMEDIFF(NULL, '12:12:12'));
1
...@@ -1144,3 +1144,13 @@ select microsecond('12:00:00.123456'), microsecond('2009-12-31 23:59:59.000010') ...@@ -1144,3 +1144,13 @@ select microsecond('12:00:00.123456'), microsecond('2009-12-31 23:59:59.000010')
--error ER_TOO_BIG_PRECISION --error ER_TOO_BIG_PRECISION
select now(258); select now(258);
#
# MDEV-4293 Valgrind warnings (Conditional jump or move depends on uninitialised value) in remove_eq_conds on time functions with NULL argument in WHERE
#
SELECT 1 FROM DUAL WHERE YEAR(TIMEDIFF(NULL, '12:12:12'));
SELECT 1 FROM DUAL WHERE MONTH(TIMEDIFF(NULL, '12:12:12'));
SELECT 1 FROM DUAL WHERE DAYOFMONTH(TIMEDIFF(NULL, '12:12:12'));
SELECT 1 FROM DUAL WHERE HOUR(TIMEDIFF(NULL, '12:12:12'));
SELECT 1 FROM DUAL WHERE MINUTE(TIMEDIFF(NULL, '12:12:12'));
SELECT 1 FROM DUAL WHERE SECOND(TIMEDIFF(NULL, '12:12:12'));
...@@ -856,16 +856,14 @@ longlong Item_func_dayofmonth::val_int() ...@@ -856,16 +856,14 @@ longlong Item_func_dayofmonth::val_int()
{ {
DBUG_ASSERT(fixed == 1); DBUG_ASSERT(fixed == 1);
MYSQL_TIME ltime; MYSQL_TIME ltime;
(void) get_arg0_date(&ltime, TIME_FUZZY_DATE); return get_arg0_date(&ltime, TIME_FUZZY_DATE) ? 0 : (longlong) ltime.day;
return (longlong) ltime.day;
} }
longlong Item_func_month::val_int() longlong Item_func_month::val_int()
{ {
DBUG_ASSERT(fixed == 1); DBUG_ASSERT(fixed == 1);
MYSQL_TIME ltime; MYSQL_TIME ltime;
(void) get_arg0_date(&ltime, TIME_FUZZY_DATE); return get_arg0_date(&ltime, TIME_FUZZY_DATE) ? 0 : (longlong) ltime.month;
return (longlong) ltime.month;
} }
...@@ -919,16 +917,14 @@ longlong Item_func_hour::val_int() ...@@ -919,16 +917,14 @@ longlong Item_func_hour::val_int()
{ {
DBUG_ASSERT(fixed == 1); DBUG_ASSERT(fixed == 1);
MYSQL_TIME ltime; MYSQL_TIME ltime;
(void) get_arg0_time(&ltime); return get_arg0_time(&ltime) ? 0 : ltime.hour;
return ltime.hour;
} }
longlong Item_func_minute::val_int() longlong Item_func_minute::val_int()
{ {
DBUG_ASSERT(fixed == 1); DBUG_ASSERT(fixed == 1);
MYSQL_TIME ltime; MYSQL_TIME ltime;
(void) get_arg0_time(&ltime); return get_arg0_time(&ltime) ? 0 : ltime.minute;
return ltime.minute;
} }
/** /**
...@@ -938,8 +934,7 @@ longlong Item_func_second::val_int() ...@@ -938,8 +934,7 @@ longlong Item_func_second::val_int()
{ {
DBUG_ASSERT(fixed == 1); DBUG_ASSERT(fixed == 1);
MYSQL_TIME ltime; MYSQL_TIME ltime;
(void) get_arg0_time(&ltime); return get_arg0_time(&ltime) ? 0 : ltime.second;
return ltime.second;
} }
...@@ -1056,8 +1051,7 @@ longlong Item_func_year::val_int() ...@@ -1056,8 +1051,7 @@ longlong Item_func_year::val_int()
{ {
DBUG_ASSERT(fixed == 1); DBUG_ASSERT(fixed == 1);
MYSQL_TIME ltime; MYSQL_TIME ltime;
(void) get_arg0_date(&ltime, TIME_FUZZY_DATE); return get_arg0_date(&ltime, TIME_FUZZY_DATE) ? 0 : (longlong) ltime.year;
return (longlong) ltime.year;
} }
......
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