mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
A fix (bug #6564: QUOTE(NULL) returns NULL, not the string 'NULL')
This commit is contained in:
@ -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("")
|
||||
|
||||
@ -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;
|
||||
|
@ -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
|
||||
#
|
||||
|
@ -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
|
||||
|
||||
RETURN VALUES
|
||||
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))
|
||||
@ -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 */
|
||||
|
||||
|
Reference in New Issue
Block a user