Loading mysql-test/r/func_str.result +4 −1 Original line number Diff line number Diff line Loading @@ -201,6 +201,9 @@ hex(unhex("1")) hex(unhex("12")) hex(unhex("123")) hex(unhex("1234")) hex(unhex( select length(unhex(md5("abrakadabra"))); length(unhex(md5("abrakadabra"))) 16 select concat('a', quote(NULL)); concat('a', quote(NULL)) aNULL select reverse(""); reverse("") Loading Loading @@ -312,7 +315,7 @@ insert into t1 values ('one'),(NULL),('two'),('four'); select a, quote(a), isnull(quote(a)), quote(a) is null, ifnull(quote(a), 'n') from t1; a quote(a) isnull(quote(a)) quote(a) is null ifnull(quote(a), 'n') one 'one' 0 0 'one' NULL NULL 1 1 n NULL NULL 0 0 NULL two 'two' 0 0 'two' four 'four' 0 0 'four' drop table t1; Loading mysql-test/t/func_str.test +6 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,12 @@ select unhex(hex("foobar")), hex(unhex("1234567890ABCDEF")), unhex("345678"), un select hex(unhex("1")), hex(unhex("12")), hex(unhex("123")), hex(unhex("1234")), hex(unhex("12345")), hex(unhex("123456")); select length(unhex(md5("abrakadabra"))); # # Bug #6564: QUOTE(NULL # select concat('a', quote(NULL)); # # Wrong usage of functions # Loading mysys/default.c +4 −5 Original line number Diff line number Diff line Loading @@ -120,7 +120,7 @@ int load_defaults(const char *conf_file, const char **groups, uint args_used=0; int error= 0; MEM_ROOT alloc; char *ptr, **res, **ext; char *ptr, **res; DBUG_ENTER("load_defaults"); Loading Loading @@ -182,7 +182,6 @@ int load_defaults(const char *conf_file, const char **groups, } else if (dirname_length(conf_file)) { for (ext= (char**) f_extensions; *ext; *ext++) if ((error= search_default_file(&args, &alloc, NullS, conf_file, &group)) < 0) goto err; Loading sql/item_strfunc.cc +11 −3 Original line number Diff line number Diff line Loading @@ -2562,9 +2562,12 @@ String* Item_func_inet_ntoa::val_str(String* str) This function is very useful when you want to generate SQL statements NOTE QUOTE(NULL) returns the string 'NULL' (4 letters, without quotes). RETURN VALUES str Quoted string NULL Argument to QUOTE() was NULL or out of memory. NULL Out of memory. */ #define get_esc_bit(mask, num) (1 & (*((mask) + ((num) >> 3))) >> ((num) & 7)) Loading @@ -2589,7 +2592,12 @@ String *Item_func_quote::val_str(String *str) String *arg= args[0]->val_str(str); uint arg_length, new_length; if (!arg) // Null argument goto null; { str->copy("NULL", 4); // Return the string 'NULL' null_value= 0; return str; } arg_length= arg->length(); new_length= arg_length+2; /* for beginning and ending ' signs */ Loading Loading
mysql-test/r/func_str.result +4 −1 Original line number Diff line number Diff line Loading @@ -201,6 +201,9 @@ hex(unhex("1")) hex(unhex("12")) hex(unhex("123")) hex(unhex("1234")) hex(unhex( select length(unhex(md5("abrakadabra"))); length(unhex(md5("abrakadabra"))) 16 select concat('a', quote(NULL)); concat('a', quote(NULL)) aNULL select reverse(""); reverse("") Loading Loading @@ -312,7 +315,7 @@ insert into t1 values ('one'),(NULL),('two'),('four'); select a, quote(a), isnull(quote(a)), quote(a) is null, ifnull(quote(a), 'n') from t1; a quote(a) isnull(quote(a)) quote(a) is null ifnull(quote(a), 'n') one 'one' 0 0 'one' NULL NULL 1 1 n NULL NULL 0 0 NULL two 'two' 0 0 'two' four 'four' 0 0 'four' drop table t1; Loading
mysql-test/t/func_str.test +6 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,12 @@ select unhex(hex("foobar")), hex(unhex("1234567890ABCDEF")), unhex("345678"), un select hex(unhex("1")), hex(unhex("12")), hex(unhex("123")), hex(unhex("1234")), hex(unhex("12345")), hex(unhex("123456")); select length(unhex(md5("abrakadabra"))); # # Bug #6564: QUOTE(NULL # select concat('a', quote(NULL)); # # Wrong usage of functions # Loading
mysys/default.c +4 −5 Original line number Diff line number Diff line Loading @@ -120,7 +120,7 @@ int load_defaults(const char *conf_file, const char **groups, uint args_used=0; int error= 0; MEM_ROOT alloc; char *ptr, **res, **ext; char *ptr, **res; DBUG_ENTER("load_defaults"); Loading Loading @@ -182,7 +182,6 @@ int load_defaults(const char *conf_file, const char **groups, } else if (dirname_length(conf_file)) { for (ext= (char**) f_extensions; *ext; *ext++) if ((error= search_default_file(&args, &alloc, NullS, conf_file, &group)) < 0) goto err; Loading
sql/item_strfunc.cc +11 −3 Original line number Diff line number Diff line Loading @@ -2562,9 +2562,12 @@ String* Item_func_inet_ntoa::val_str(String* str) This function is very useful when you want to generate SQL statements NOTE QUOTE(NULL) returns the string 'NULL' (4 letters, without quotes). RETURN VALUES str Quoted string NULL Argument to QUOTE() was NULL or out of memory. NULL Out of memory. */ #define get_esc_bit(mask, num) (1 & (*((mask) + ((num) >> 3))) >> ((num) & 7)) Loading @@ -2589,7 +2592,12 @@ String *Item_func_quote::val_str(String *str) String *arg= args[0]->val_str(str); uint arg_length, new_length; if (!arg) // Null argument goto null; { str->copy("NULL", 4); // Return the string 'NULL' null_value= 0; return str; } arg_length= arg->length(); new_length= arg_length+2; /* for beginning and ending ' signs */ Loading