summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <gkodinov/kgeorge@magare.gmz>2007-03-02 12:14:50 +0200
committerunknown <gkodinov/kgeorge@magare.gmz>2007-03-02 12:14:50 +0200
commit399bf23c1d9b5666c29bca6779e4459ed8fdbc4d (patch)
tree5ad96de4d1308f8e66de478889fd2215aa0c3f8b /sql
parent3a520a785eeee973e79d1f6e482e270e24a20c56 (diff)
downloadmariadb-git-399bf23c1d9b5666c29bca6779e4459ed8fdbc4d.tar.gz
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.
Diffstat (limited to 'sql')
-rw-r--r--sql/item_strfunc.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h
index 60547d00a5c..778ea6e9496 100644
--- a/sql/item_strfunc.h
+++ b/sql/item_strfunc.h
@@ -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()