Loading mysql-test/r/func_str.result +4 −1 Original line number Diff line number Diff line Loading @@ -167,6 +167,9 @@ length(quote(concat(char(0),"test"))) select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))); hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))) 27E0E3E6E7E8EAEB27 select concat('a', quote(NULL)); concat('a', quote(NULL)) aNULL select reverse(""); reverse("") Loading Loading @@ -278,7 +281,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 @@ -69,6 +69,12 @@ select quote(1/0), quote('\0\Z'); select length(quote(concat(char(0),"test"))); select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))); # # Bug #6564: QUOTE(NULL # select concat('a', quote(NULL)); # # Wrong usage of functions # Loading sql/item_strfunc.cc +11 −3 Original line number Diff line number Diff line Loading @@ -2142,9 +2142,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 @@ -2168,7 +2171,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 @@ -167,6 +167,9 @@ length(quote(concat(char(0),"test"))) select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))); hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))) 27E0E3E6E7E8EAEB27 select concat('a', quote(NULL)); concat('a', quote(NULL)) aNULL select reverse(""); reverse("") Loading Loading @@ -278,7 +281,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 @@ -69,6 +69,12 @@ select quote(1/0), quote('\0\Z'); select length(quote(concat(char(0),"test"))); select hex(quote(concat(char(224),char(227),char(230),char(231),char(232),char(234),char(235)))); # # Bug #6564: QUOTE(NULL # select concat('a', quote(NULL)); # # Wrong usage of functions # Loading
sql/item_strfunc.cc +11 −3 Original line number Diff line number Diff line Loading @@ -2142,9 +2142,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 @@ -2168,7 +2171,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