From a67bf98f02237e39a475bedc362e8fc28dbe44fb Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Sat, 19 Mar 2011 14:54:46 +0100 Subject: [PATCH] lp:738067 Crash in get_datetime_value() in 5.1-micro --- mysql-test/r/func_time.result | 3 +++ mysql-test/t/func_time.test | 4 ++++ sql/item_func.cc | 2 ++ 3 files changed, 9 insertions(+) diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result index 75c57c34171..9e04078f1ee 100644 --- a/mysql-test/r/func_time.result +++ b/mysql-test/r/func_time.result @@ -1536,3 +1536,6 @@ drop table t1; select day(coalesce(null)); day(coalesce(null)) NULL +select timestamp(greatest('2002-08-20', '0000-00-00 00:00:00')); +timestamp(greatest('2002-08-20', '0000-00-00 00:00:00')) +2002-08-20 00:00:00 diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test index e4b52b0330c..70451e98763 100644 --- a/mysql-test/t/func_time.test +++ b/mysql-test/t/func_time.test @@ -973,3 +973,7 @@ drop table t1; # select day(coalesce(null)); +# +# lp:738067 Crash in get_datetime_value() in 5.1-micro +# +select timestamp(greatest('2002-08-20', '0000-00-00 00:00:00')); diff --git a/sql/item_func.cc b/sql/item_func.cc index 3e539585dde..9ee239b702b 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -2274,6 +2274,8 @@ bool Item_func_min_max::get_date(MYSQL_TIME *ltime, uint fuzzy_date) { longlong UNINIT_VAR(min_max); DBUG_ASSERT(fixed == 1); + if (!compare_as_dates) + return Item_func::get_date(ltime, fuzzy_date); for (uint i=0; i < arg_count ; i++) {