1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Bug#31160: MAKETIME() crashes server when returning NULL in ORDER BY using filesort

Even though it returns NULL, the MAKETIME function did not have this property set,
causing a failed assertion (designed to catch exactly this).
Fixed by setting the nullability property of MAKETIME().


mysql-test/r/func_sapdb.result:
  Bug#31160: Changed test result.
mysql-test/r/func_time.result:
  Bug#31160: Test result.
mysql-test/t/func_time.test:
  Bug#31160: Test case.
sql/item_timefunc.h:
  Bug#31160: The fix: Initializing maybe_null to true
This commit is contained in:
unknown
2007-10-09 14:58:09 +02:00
parent 692b686dae
commit ae4141ed75
4 changed files with 24 additions and 2 deletions

View File

@ -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

View File

@ -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);

View File

@ -545,6 +545,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

View File

@ -962,7 +962,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"; }
};