1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

fix for bug #23938: ISNULL on DATE AND CAST AS DATE returns false for null values

Set null_value in case of wrong data.
This commit is contained in:
ramil/ram@mysql.com/myoffice.izhnet.ru
2006-12-04 17:06:25 +04:00
parent c2aca91b7f
commit c99556d5d4
3 changed files with 14 additions and 1 deletions

View File

@@ -278,3 +278,7 @@ double_val cast_val
-1e+30 -9223372036854775808
1e+30 9223372036854775807
DROP TABLE t1;
select isnull(date(NULL)), isnull(cast(NULL as DATE));
isnull(date(NULL)) isnull(cast(NULL as DATE))
1 1
End of 4.1 tests

View File

@@ -167,4 +167,10 @@ INSERT INTO t1 SET f1 = +1.0e+30 ;
SELECT f1 AS double_val, CAST(f1 AS SIGNED INT) AS cast_val FROM t1;
DROP TABLE t1;
# End of 4.1 tests
#
# Bug #23938: cast(NULL as DATE)
#
select isnull(date(NULL)), isnull(cast(NULL as DATE));
--echo End of 4.1 tests

View File

@@ -2507,7 +2507,10 @@ longlong Item_date_typecast::val_int()
DBUG_ASSERT(fixed == 1);
TIME ltime;
if (args[0]->get_date(&ltime, TIME_FUZZY_DATE))
{
null_value= 1;
return 0;
}
return (longlong) (ltime.year * 10000L + ltime.month * 100 + ltime.day);
}