Commit 75a4c71b authored by unknown's avatar unknown
Browse files

Merge with 4.0

parents 20d88eb7 c7b66f9d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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("")

@@ -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;
+6 −0
Original line number Diff line number Diff line
@@ -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
#
+4 −5
Original line number Diff line number Diff line
@@ -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");

@@ -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;
+11 −3
Original line number Diff line number Diff line
@@ -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))
@@ -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 */