summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorunknown <dlenev@mysql.com>2004-12-30 21:18:10 +0300
committerunknown <dlenev@mysql.com>2004-12-30 21:18:10 +0300
commit1ffd688a4a341157df30602a7f3c6d97f9a4e010 (patch)
treeb54b57244a10da8f91840a3a3c53989a5220db7c /mysql-test
parent2fb340b5209dda8f71f372fed17d65a0c5814821 (diff)
downloadmariadb-git-1ffd688a4a341157df30602a7f3c6d97f9a4e010.tar.gz
Fix for bug #7515 "from_unixtime(0) now returns NULL instead of
the Epoch". (With after review fixes). mysql-test/r/func_time.result: Added test for bug #7515 "from_unixtime(0) now returns NULL instead of the Epoch". mysql-test/t/func_time.test: Added test for bug #7515 "from_unixtime(0) now returns NULL instead of the Epoch". sql/item_timefunc.cc: Item_func_from_unixtime: from_unixtime(0) should return Epoch instead of NULL. sql/item_timefunc.h: Item_func_from_unixtime: - Removed unused method definition. - fix_length_and_dec() should set maybe_null to true since now from_unixtime() can return NULL even in case when none of its arguments is NULL.
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/func_time.result7
-rw-r--r--mysql-test/t/func_time.test8
2 files changed, 11 insertions, 4 deletions
diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result
index 32034bf289d..c1e75b60e4f 100644
--- a/mysql-test/r/func_time.result
+++ b/mysql-test/r/func_time.result
@@ -470,9 +470,12 @@ unix_timestamp(@a)
select unix_timestamp('1969-12-01 19:00:01');
unix_timestamp('1969-12-01 19:00:01')
0
-select from_unixtime(0);
-from_unixtime(0)
+select from_unixtime(-1);
+from_unixtime(-1)
NULL
select from_unixtime(2145916800);
from_unixtime(2145916800)
NULL
+select from_unixtime(0);
+from_unixtime(0)
+1970-01-01 03:00:00
diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test
index da18269cf6a..60c7aa49fbf 100644
--- a/mysql-test/t/func_time.test
+++ b/mysql-test/t/func_time.test
@@ -228,7 +228,11 @@ select unix_timestamp('1969-12-01 19:00:01');
#
# Test for bug #6439 "unix_timestamp() function returns wrong datetime
-# values for too big argument". It should return error instead.
+# values for too big argument" and bug #7515 "from_unixtime(0) now
+# returns NULL instead of the epoch". unix_timestamp() should return error
+# for too big or negative argument. It should return Epoch value for zero
+# argument since it seems that many user's rely on this fact.
#
-select from_unixtime(0);
+select from_unixtime(-1);
select from_unixtime(2145916800);
+select from_unixtime(0);