summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormhansson@dl145s.mysql.com <>2007-10-09 15:35:03 +0200
committermhansson@dl145s.mysql.com <>2007-10-09 15:35:03 +0200
commit1566f370a8279dc5f82632572351435d8af62486 (patch)
tree2130a0d2a025cda5a2b6655a3a263214c3550079
parenta06a6579e8c7e2377d69d3c42fb4850e4c9aa1ba (diff)
parent98220d761eef537d9a8d11a01f5b718ab4848e51 (diff)
downloadmariadb-git-1566f370a8279dc5f82632572351435d8af62486.tar.gz
Merge bk-internal:/home/bk/mysql-5.1-opt
into dl145s.mysql.com:/data0/mhansson/bug31160/my51-bug31160
-rw-r--r--mysql-test/r/func_sapdb.result2
-rw-r--r--mysql-test/r/func_time.result9
-rw-r--r--mysql-test/t/func_time.test10
-rw-r--r--sql/item_timefunc.h5
4 files changed, 24 insertions, 2 deletions
diff --git a/mysql-test/r/func_sapdb.result b/mysql-test/r/func_sapdb.result
index b7dbfc670a8..e68a4cef1ae 100644
--- a/mysql-test/r/func_sapdb.result
+++ b/mysql-test/r/func_sapdb.result
@@ -196,7 +196,7 @@ f2 datetime YES NULL
f3 time YES NULL
f4 time YES NULL
f5 time YES NULL
-f6 time NO 00:00:00
+f6 time YES NULL
f7 datetime YES NULL
f8 date YES NULL
f9 time YES NULL
diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result
index 3105bc3b578..a355d7929b5 100644
--- a/mysql-test/r/func_time.result
+++ b/mysql-test/r/func_time.result
@@ -1027,6 +1027,15 @@ fmtddate field2
Sep-4 12:00AM abcd
DROP TABLE testBug8868;
SET NAMES DEFAULT;
+CREATE TABLE t1 (
+a TIMESTAMP
+);
+INSERT INTO t1 VALUES (now()), (now());
+SELECT 1 FROM t1 ORDER BY MAKETIME(1, 1, a);
+1
+1
+1
+DROP TABLE t1;
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H)
union
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H);
diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test
index d3346bbb880..5c1a5c2200b 100644
--- a/mysql-test/t/func_time.test
+++ b/mysql-test/t/func_time.test
@@ -548,6 +548,16 @@ DROP TABLE testBug8868;
SET NAMES DEFAULT;
#
+# Bug #31160: MAKETIME() crashes server when returning NULL in ORDER BY using
+# filesort
+#
+CREATE TABLE t1 (
+ a TIMESTAMP
+);
+INSERT INTO t1 VALUES (now()), (now());
+SELECT 1 FROM t1 ORDER BY MAKETIME(1, 1, a);
+DROP TABLE t1;
+#
# Bug #19844 time_format in Union truncates values
#
diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h
index 6d3a236b791..4c335ca85b1 100644
--- a/sql/item_timefunc.h
+++ b/sql/item_timefunc.h
@@ -938,7 +938,10 @@ class Item_func_maketime :public Item_str_timefunc
{
public:
Item_func_maketime(Item *a, Item *b, Item *c)
- :Item_str_timefunc(a, b ,c) {}
+ :Item_str_timefunc(a, b, c)
+ {
+ maybe_null= TRUE;
+ }
String *val_str(String *str);
const char *func_name() const { return "maketime"; }
};