mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Bug #26537: item_unhex() was not expected
to return NULL for non-NULL arguments. This is not the case as it can return NULL for invalid hexidecimal strings. Fixed by setting the maybe_null flag. mysql-test/r/func_str.result: Bug #26537: test case mysql-test/t/func_str.test: Bug #26537: test case sql/item_strfunc.h: Bug #26537: item_unhex() can return NULLs even for guaranteed non-null arguments.
This commit is contained in:
@@ -1940,4 +1940,10 @@ abcxx
|
||||
select lpad('abc', cast(5 as unsigned integer), 'x');
|
||||
lpad('abc', cast(5 as unsigned integer), 'x')
|
||||
xxabc
|
||||
SELECT UNHEX('G');
|
||||
UNHEX('G')
|
||||
NULL
|
||||
SELECT UNHEX('G') IS NULL;
|
||||
UNHEX('G') IS NULL
|
||||
1
|
||||
End of 5.0 tests
|
||||
|
@@ -1008,4 +1008,10 @@ select repeat('a', cast(2 as unsigned int));
|
||||
select rpad('abc', cast(5 as unsigned integer), 'x');
|
||||
select lpad('abc', cast(5 as unsigned integer), 'x');
|
||||
|
||||
#
|
||||
# Bug #26537: UNHEX() IS NULL comparison fails
|
||||
#
|
||||
SELECT UNHEX('G');
|
||||
SELECT UNHEX('G') IS NULL;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
@@ -605,7 +605,11 @@ class Item_func_unhex :public Item_str_func
|
||||
{
|
||||
String tmp_value;
|
||||
public:
|
||||
Item_func_unhex(Item *a) :Item_str_func(a) {}
|
||||
Item_func_unhex(Item *a) :Item_str_func(a)
|
||||
{
|
||||
/* there can be bad hex strings */
|
||||
maybe_null= 1;
|
||||
}
|
||||
const char *func_name() const { return "unhex"; }
|
||||
String *val_str(String *);
|
||||
void fix_length_and_dec()
|
||||
|
Reference in New Issue
Block a user