List:Commits« Previous MessageNext Message »
From:marc.alff Date:November 16 2006 4:32pm
Subject:bk commit into 5.1 tree (malff:1.2364)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of marcsql. When marcsql does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2006-11-16 09:32:50-07:00, malff@weblab.(none) +5 -0
  Merge malff@stripped:/home/bk/mysql-5.1-runtime
  into  weblab.(none):/home/marcsql/TREE/mysql-5.1-22684
  MERGE: 1.2340.1.3

  mysql-test/r/func_str.result@stripped, 2006-11-16 09:32:48-07:00, malff@weblab.(none) +0 -768
    auto merge
    MERGE: 1.127.1.1

  sql/item_func.cc@stripped, 2006-11-16 09:06:21-07:00, malff@weblab.(none) +0 -0
    Auto merged
    MERGE: 1.327.1.1

  sql/item_func.h@stripped, 2006-11-16 09:06:21-07:00, malff@weblab.(none) +0 -0
    Auto merged
    MERGE: 1.151.1.1

  sql/item_strfunc.cc@stripped, 2006-11-16 09:06:21-07:00, malff@weblab.(none) +0 -0
    Auto merged
    MERGE: 1.295.1.1

  sql/item_strfunc.h@stripped, 2006-11-16 09:06:21-07:00, malff@weblab.(none) +0 -0
    Auto merged
    MERGE: 1.120.1.1

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	malff
# Host:	weblab.(none)
# Root:	/home/marcsql/TREE/mysql-5.1-22684/RESYNC

--- 1.331/sql/item_func.cc	2006-11-16 09:32:56 -07:00
+++ 1.332/sql/item_func.cc	2006-11-16 09:32:56 -07:00
@@ -3403,18 +3403,28 @@ longlong Item_func_benchmark::val_int()
   char buff[MAX_FIELD_WIDTH];
   String tmp(buff,sizeof(buff), &my_charset_bin);
   THD *thd=current_thd;
+  ulong loop_count;
 
+  loop_count= args[0]->val_int();
+
+  if (args[0]->null_value)
+  {
+    null_value= 1;
+    return 0;
+  }
+
+  null_value=0;
   for (ulong loop=0 ; loop < loop_count && !thd->killed; loop++)
   {
-    switch (args[0]->result_type()) {
+    switch (args[1]->result_type()) {
     case REAL_RESULT:
-      (void) args[0]->val_real();
+      (void) args[1]->val_real();
       break;
     case INT_RESULT:
-      (void) args[0]->val_int();
+      (void) args[1]->val_int();
       break;
     case STRING_RESULT:
-      (void) args[0]->val_str(&tmp);
+      (void) args[1]->val_str(&tmp);
       break;
     case ROW_RESULT:
     default:
@@ -3430,13 +3440,9 @@ longlong Item_func_benchmark::val_int()
 void Item_func_benchmark::print(String *str)
 {
   str->append(STRING_WITH_LEN("benchmark("));
-  char buffer[20];
-  // my_charset_bin is good enough for numbers
-  String st(buffer, sizeof(buffer), &my_charset_bin);
-  st.set((ulonglong)loop_count, &my_charset_bin);
-  str->append(st);
-  str->append(',');
   args[0]->print(str);
+  str->append(',');
+  args[1]->print(str);
   str->append(')');
 }
 

--- 1.152/sql/item_func.h	2006-11-16 09:32:56 -07:00
+++ 1.153/sql/item_func.h	2006-11-16 09:32:56 -07:00
@@ -925,10 +925,9 @@ public:
 
 class Item_func_benchmark :public Item_int_func
 {
-  ulong loop_count;
 public:
-  Item_func_benchmark(ulong loop_count_arg,Item *expr)
-    :Item_int_func(expr), loop_count(loop_count_arg)
+  Item_func_benchmark(Item *count_expr, Item *expr)
+    :Item_int_func(count_expr, expr)
   {}
   longlong val_int();
   const char *func_name() const { return "benchmark"; }

--- 1.297/sql/item_strfunc.cc	2006-11-16 09:32:56 -07:00
+++ 1.298/sql/item_strfunc.cc	2006-11-16 09:32:56 -07:00
@@ -1673,21 +1673,33 @@ String *Item_func_encrypt::val_str(Strin
 void Item_func_encode::fix_length_and_dec()
 {
   max_length=args[0]->max_length;
-  maybe_null=args[0]->maybe_null;
+  maybe_null=args[0]->maybe_null || args[1]->maybe_null;
   collation.set(&my_charset_bin);
 }
 
 String *Item_func_encode::val_str(String *str)
 {
-  DBUG_ASSERT(fixed == 1);
   String *res;
+  char pw_buff[80];
+  String tmp_pw_value(pw_buff, sizeof(pw_buff), system_charset_info);
+  String *password;
+  DBUG_ASSERT(fixed == 1);
+
   if (!(res=args[0]->val_str(str)))
   {
     null_value=1; /* purecov: inspected */
     return 0; /* purecov: inspected */
   }
+
+  if (!(password=args[1]->val_str(& tmp_pw_value)))
+  {
+    null_value=1;
+    return 0;
+  }
+
   null_value=0;
   res=copy_if_not_alloced(str,res,res->length());
+  SQL_CRYPT sql_crypt(password->ptr());
   sql_crypt.init();
   sql_crypt.encode((char*) res->ptr(),res->length());
   res->set_charset(&my_charset_bin);
@@ -1696,15 +1708,27 @@ String *Item_func_encode::val_str(String
 
 String *Item_func_decode::val_str(String *str)
 {
-  DBUG_ASSERT(fixed == 1);
   String *res;
+  char pw_buff[80];
+  String tmp_pw_value(pw_buff, sizeof(pw_buff), system_charset_info);
+  String *password;
+  DBUG_ASSERT(fixed == 1);
+
   if (!(res=args[0]->val_str(str)))
   {
     null_value=1; /* purecov: inspected */
     return 0; /* purecov: inspected */
   }
+
+  if (!(password=args[1]->val_str(& tmp_pw_value)))
+  {
+    null_value=1;
+    return 0;
+  }
+
   null_value=0;
   res=copy_if_not_alloced(str,res,res->length());
+  SQL_CRYPT sql_crypt(password->ptr());
   sql_crypt.init();
   sql_crypt.decode((char*) res->ptr(),res->length());
   return res;
@@ -1874,9 +1898,19 @@ String *Item_func_soundex::val_str(Strin
 ** This should be 'internationalized' sometimes.
 */
 
-Item_func_format::Item_func_format(Item *org,int dec) :Item_str_func(org)
+const int FORMAT_MAX_DECIMALS= 30;
+
+Item_func_format::Item_func_format(Item *org, Item *dec)
+: Item_str_func(org, dec)
+{
+}
+
+void Item_func_format::fix_length_and_dec()
 {
-  decimals=(uint) set_zone(dec,0,30);
+  collation.set(default_charset());
+  uint char_length= args[0]->max_length/args[0]->collation.collation->mbmaxlen;
+  max_length= ((char_length + (char_length-args[0]->decimals)/3) *
+               collation.collation->mbmaxlen);
 }
 
 
@@ -1887,10 +1921,25 @@ Item_func_format::Item_func_format(Item 
 
 String *Item_func_format::val_str(String *str)
 {
-  uint32 length, str_length ,dec;
+  uint32 length;
+  uint32 str_length;
+  /* Number of decimal digits */
+  int dec;
+  /* Number of characters used to represent the decimals, including '.' */
+  uint32 dec_length;
   int diff;
   DBUG_ASSERT(fixed == 1);
-  dec= decimals ? decimals+1 : 0;
+
+  dec= args[1]->val_int();
+  if (args[1]->null_value)
+  {
+    null_value=1;
+    return NULL;
+  }
+
+  dec= set_zone(dec, 0, FORMAT_MAX_DECIMALS);
+  dec_length= dec ? dec+1 : 0;
+  null_value=0;
 
   if (args[0]->result_type() == DECIMAL_RESULT ||
       args[0]->result_type() == INT_RESULT)
@@ -1899,7 +1948,7 @@ String *Item_func_format::val_str(String
     res= args[0]->val_decimal(&dec_val);
     if ((null_value=args[0]->null_value))
       return 0; /* purecov: inspected */
-    my_decimal_round(E_DEC_FATAL_ERROR, res, decimals, false, &rnd_dec);
+    my_decimal_round(E_DEC_FATAL_ERROR, res, dec, false, &rnd_dec);
     my_decimal2string(E_DEC_FATAL_ERROR, &rnd_dec, 0, 0, 0, str);
     str_length= str->length();
     if (rnd_dec.sign())
@@ -1910,9 +1959,9 @@ String *Item_func_format::val_str(String
     double nr= args[0]->val_real();
     if ((null_value=args[0]->null_value))
       return 0; /* purecov: inspected */
-    nr= my_double_round(nr, decimals, FALSE);
+    nr= my_double_round(nr, dec, FALSE);
     /* Here default_charset() is right as this is not an automatic conversion */
-    str->set_real(nr,decimals, default_charset());
+    str->set_real(nr, dec, default_charset());
     if (isnan(nr))
       return str;
     str_length=str->length();
@@ -1920,13 +1969,13 @@ String *Item_func_format::val_str(String
       str_length--;				// Don't count sign
   }
   /* We need this test to handle 'nan' values */
-  if (str_length >= dec+4)
+  if (str_length >= dec_length+4)
   {
     char *tmp,*pos;
-    length= str->length()+(diff=((int)(str_length- dec-1))/3);
+    length= str->length()+(diff=((int)(str_length- dec_length-1))/3);
     str= copy_if_not_alloced(&tmp_str,str,length);
     str->length(length);
-    tmp= (char*) str->ptr()+length - dec-1;
+    tmp= (char*) str->ptr()+length - dec_length-1;
     for (pos= (char*) str->ptr()+length-1; pos != tmp; pos--)
       pos[0]= pos[-diff];
     while (diff)
@@ -1950,12 +1999,8 @@ void Item_func_format::print(String *str
 {
   str->append(STRING_WITH_LEN("format("));
   args[0]->print(str);
-  str->append(',');  
-  // my_charset_bin is good enough for numbers
-  char buffer[20];
-  String st(buffer, sizeof(buffer), &my_charset_bin);
-  st.set((ulonglong)decimals, &my_charset_bin);
-  str->append(st);
+  str->append(',');
+  args[1]->print(str);
   str->append(')');
 }
 

--- 1.121/sql/item_strfunc.h	2006-11-16 09:32:56 -07:00
+++ 1.122/sql/item_strfunc.h	2006-11-16 09:32:56 -07:00
@@ -361,11 +361,9 @@ public:
 
 class Item_func_encode :public Item_str_func
 {
- protected:
-  SQL_CRYPT sql_crypt;
 public:
-  Item_func_encode(Item *a, char *seed):
-    Item_str_func(a),sql_crypt(seed) {}
+  Item_func_encode(Item *a, Item *seed):
+    Item_str_func(a, seed) {}
   String *val_str(String *);
   void fix_length_and_dec();
   const char *func_name() const { return "encode"; }
@@ -375,7 +373,7 @@ public:
 class Item_func_decode :public Item_func_encode
 {
 public:
-  Item_func_decode(Item *a, char *seed): Item_func_encode(a,seed) {}
+  Item_func_decode(Item *a, Item *seed): Item_func_encode(a, seed) {}
   String *val_str(String *);
   const char *func_name() const { return "decode"; }
 };
@@ -508,15 +506,9 @@ class Item_func_format :public Item_str_
 {
   String tmp_str;
 public:
-  Item_func_format(Item *org,int dec);
+  Item_func_format(Item *org, Item *dec);
   String *val_str(String *);
-  void fix_length_and_dec()
-  {
-    collation.set(default_charset());
-    uint char_length= args[0]->max_length/args[0]->collation.collation->mbmaxlen;
-    max_length= ((char_length + (char_length-args[0]->decimals)/3) *
-                 collation.collation->mbmaxlen);
-  }
+  void fix_length_and_dec();
   const char *func_name() const { return "format"; }
   void print(String *);
 };

--- 1.130/mysql-test/r/func_str.result	2006-11-16 09:32:56 -07:00
+++ 1.131/mysql-test/r/func_str.result	2006-11-16 09:32:56 -07:00
@@ -813,11 +813,231 @@ drop table t7;
 select substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2),substring_index("1abcd;2abcd;3abcd;4abcd", ';', -2);
 substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2)	substring_index("1abcd;2abcd;3abcd;4abcd", ';', -2)
 1abcd;2abcd	3abcd;4abcd
-explain extended select md5('hello'), sha('abc'), sha1('abc'), soundex(''), 'mood' sounds like 'mud', aes_decrypt(aes_encrypt('abc','1'),'1'),concat('*',space(5),'*'), reverse('abc'), rpad('a',4,'1'), lpad('a',4,'1'),  concat_ws(',','',NULL,'a'),make_set(255,_latin2'a',_latin2'b',_latin2'c'),elt(2,1),locate("a","b",2),format(130,10),char(0),conv(130,16,10),hex(130),binary 'HE', export_set(255,_latin2'y',_latin2'n',_latin2' '),FIELD('b' COLLATE latin1_bin,'A','B'),FIND_IN_SET(_latin1'B',_latin1'a,b,c,d'),collation(conv(130,16,10)), coercibility(conv(130,16,10)),length('\n\t\r\b\0\_\%\\'),bit_length('\n\t\r\b\0\_\%\\'),bit_length('\n\t\r\b\0\_\%\\'),concat('monty',' was here ','again'),length('hello'),char(ascii('h')),ord('h'),quote(1/0),crc32("123"),replace('aaaa','a','b'),insert('txs',2,1,'hi'),left(_latin2'a',1),right(_latin2'a',1),lcase(_latin2'a'),ucase(_latin2'a'),SUBSTR('abcdefg',3,2),substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2),trim(_latin2' a '),ltrim(_latin2' a
  '),rtrim(_latin2' a '), decode(encode(repeat("a",100000),"monty"),"monty");
+explain extended select md5('hello');
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
 Warnings:
-Note	1003	select md5(_latin1'hello') AS `md5('hello')`,sha(_latin1'abc') AS `sha('abc')`,sha(_latin1'abc') AS `sha1('abc')`,soundex(_latin1'') AS `soundex('')`,(soundex(_latin1'mood') = soundex(_latin1'mud')) AS `'mood' sounds like 'mud'`,aes_decrypt(aes_encrypt(_latin1'abc',_latin1'1'),_latin1'1') AS `aes_decrypt(aes_encrypt('abc','1'),'1')`,concat(_latin1'*',repeat(_latin1' ',5),_latin1'*') AS `concat('*',space(5),'*')`,reverse(_latin1'abc') AS `reverse('abc')`,rpad(_latin1'a',4,_latin1'1') AS `rpad('a',4,'1')`,lpad(_latin1'a',4,_latin1'1') AS `lpad('a',4,'1')`,concat_ws(_latin1',',_latin1'',NULL,_latin1'a') AS `concat_ws(',','',NULL,'a')`,make_set(255,_latin2'a',_latin2'b',_latin2'c') AS `make_set(255,_latin2'a',_latin2'b',_latin2'c')`,elt(2,1) AS `elt(2,1)`,locate(_latin1'a',_latin1'b',2) AS `locate("a","b",2)`,format(130,10) AS `format(130,10)`,char(0) AS `char(0)`,conv(130,16,10) AS `conv(130,16,10)`,hex(130) AS `hex(130)`,cast(_latin1'HE' as char charset binary) AS `b
 inary 'HE'`,export_set(255,_latin2'y',_latin2'n',_latin2' ') AS `export_set(255,_latin2'y',_latin2'n',_latin2' ')`,field((_latin1'b' collate latin1_bin),_latin1'A',_latin1'B') AS `FIELD('b' COLLATE latin1_bin,'A','B')`,find_in_set(_latin1'B',_latin1'a,b,c,d') AS `FIND_IN_SET(_latin1'B',_latin1'a,b,c,d')`,collation(conv(130,16,10)) AS `collation(conv(130,16,10))`,coercibility(conv(130,16,10)) AS `coercibility(conv(130,16,10))`,length(_latin1'\n	\r\0\\_\\%\\') AS `length('\n\t\r\b\0\_\%\\')`,bit_length(_latin1'\n	\r\0\\_\\%\\') AS `bit_length('\n\t\r\b\0\_\%\\')`,bit_length(_latin1'\n	\r\0\\_\\%\\') AS `bit_length('\n\t\r\b\0\_\%\\')`,concat(_latin1'monty',_latin1' was here ',_latin1'again') AS `concat('monty',' was here ','again')`,length(_latin1'hello') AS `length('hello')`,char(ascii(_latin1'h')) AS `char(ascii('h'))`,ord(_latin1'h') AS `ord('h')`,quote((1 / 0)) AS `quote(1/0)`,crc32(_latin1'123') AS `crc32("123")`,replace(_latin1'aaaa',_latin1'a',_latin1'b') AS `replace
 ('aaaa','a','b')`,insert(_latin1'txs',2,1,_latin1'hi') AS `insert('txs',2,1,'hi')`,left(_latin2'a',1) AS `left(_latin2'a',1)`,right(_latin2'a',1) AS `right(_latin2'a',1)`,lcase(_latin2'a') AS `lcase(_latin2'a')`,ucase(_latin2'a') AS `ucase(_latin2'a')`,substr(_latin1'abcdefg',3,2) AS `SUBSTR('abcdefg',3,2)`,substring_index(_latin1'1abcd;2abcd;3abcd;4abcd',_latin1';',2) AS `substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2)`,trim(_latin2' a ') AS `trim(_latin2' a ')`,ltrim(_latin2' a ') AS `ltrim(_latin2' a ')`,rtrim(_latin2' a ') AS `rtrim(_latin2' a ')`,decode(encode(repeat(_latin1'a',100000))) AS `decode(encode(repeat("a",100000),"monty"),"monty")`
+Note	1003	select md5(_latin1'hello') AS `md5('hello')`
+explain extended select sha('abc');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select sha(_latin1'abc') AS `sha('abc')`
+explain extended select sha1('abc');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select sha(_latin1'abc') AS `sha1('abc')`
+explain extended select soundex('');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select soundex(_latin1'') AS `soundex('')`
+explain extended select 'mood' sounds like 'mud';
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select (soundex(_latin1'mood') = soundex(_latin1'mud')) AS `'mood' sounds like 'mud'`
+explain extended select aes_decrypt(aes_encrypt('abc','1'),'1');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select aes_decrypt(aes_encrypt(_latin1'abc',_latin1'1'),_latin1'1') AS `aes_decrypt(aes_encrypt('abc','1'),'1')`
+explain extended select concat('*',space(5),'*');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select concat(_latin1'*',repeat(_latin1' ',5),_latin1'*') AS `concat('*',space(5),'*')`
+explain extended select reverse('abc');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select reverse(_latin1'abc') AS `reverse('abc')`
+explain extended select rpad('a',4,'1');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select rpad(_latin1'a',4,_latin1'1') AS `rpad('a',4,'1')`
+explain extended select lpad('a',4,'1');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select lpad(_latin1'a',4,_latin1'1') AS `lpad('a',4,'1')`
+explain extended select concat_ws(',','',NULL,'a');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select concat_ws(_latin1',',_latin1'',NULL,_latin1'a') AS `concat_ws(',','',NULL,'a')`
+explain extended select make_set(255,_latin2'a', _latin2'b', _latin2'c');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select make_set(255,_latin2'a',_latin2'b',_latin2'c') AS `make_set(255,_latin2'a', _latin2'b', _latin2'c')`
+explain extended select elt(2,1);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select elt(2,1) AS `elt(2,1)`
+explain extended select locate("a","b",2);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select locate(_latin1'a',_latin1'b',2) AS `locate("a","b",2)`
+explain extended select format(130,10);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select format(130,10) AS `format(130,10)`
+explain extended select char(0);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select char(0) AS `char(0)`
+explain extended select conv(130,16,10);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select conv(130,16,10) AS `conv(130,16,10)`
+explain extended select hex(130);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select hex(130) AS `hex(130)`
+explain extended select binary 'HE';
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select cast(_latin1'HE' as char charset binary) AS `binary 'HE'`
+explain extended select export_set(255,_latin2'y', _latin2'n', _latin2' ');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select export_set(255,_latin2'y',_latin2'n',_latin2' ') AS `export_set(255,_latin2'y', _latin2'n', _latin2' ')`
+explain extended select FIELD('b' COLLATE latin1_bin,'A','B');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select field((_latin1'b' collate latin1_bin),_latin1'A',_latin1'B') AS `FIELD('b' COLLATE latin1_bin,'A','B')`
+explain extended select FIND_IN_SET(_latin1'B', _latin1'a,b,c,d');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select find_in_set(_latin1'B',_latin1'a,b,c,d') AS `FIND_IN_SET(_latin1'B', _latin1'a,b,c,d')`
+explain extended select collation(conv(130,16,10));
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select collation(conv(130,16,10)) AS `collation(conv(130,16,10))`
+explain extended select coercibility(conv(130,16,10));
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select coercibility(conv(130,16,10)) AS `coercibility(conv(130,16,10))`
+explain extended select length('\n\t\r\b\0\_\%\\');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select length(_latin1'\n	\r\0\\_\\%\\') AS `length('\n\t\r\b\0\_\%\\')`
+explain extended select bit_length('\n\t\r\b\0\_\%\\');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select bit_length(_latin1'\n	\r\0\\_\\%\\') AS `bit_length('\n\t\r\b\0\_\%\\')`
+explain extended select bit_length('\n\t\r\b\0\_\%\\');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select bit_length(_latin1'\n	\r\0\\_\\%\\') AS `bit_length('\n\t\r\b\0\_\%\\')`
+explain extended select concat('monty',' was here ','again');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select concat(_latin1'monty',_latin1' was here ',_latin1'again') AS `concat('monty',' was here ','again')`
+explain extended select length('hello');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select length(_latin1'hello') AS `length('hello')`
+explain extended select char(ascii('h'));
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select char(ascii(_latin1'h')) AS `char(ascii('h'))`
+explain extended select ord('h');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select ord(_latin1'h') AS `ord('h')`
+explain extended select quote(1/0);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select quote((1 / 0)) AS `quote(1/0)`
+explain extended select crc32("123");
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select crc32(_latin1'123') AS `crc32("123")`
+explain extended select replace('aaaa','a','b');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select replace(_latin1'aaaa',_latin1'a',_latin1'b') AS `replace('aaaa','a','b')`
+explain extended select insert('txs',2,1,'hi');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select insert(_latin1'txs',2,1,_latin1'hi') AS `insert('txs',2,1,'hi')`
+explain extended select left(_latin2'a',1);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select left(_latin2'a',1) AS `left(_latin2'a',1)`
+explain extended select right(_latin2'a',1);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select right(_latin2'a',1) AS `right(_latin2'a',1)`
+explain extended select lcase(_latin2'a');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select lcase(_latin2'a') AS `lcase(_latin2'a')`
+explain extended select ucase(_latin2'a');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select ucase(_latin2'a') AS `ucase(_latin2'a')`
+explain extended select SUBSTR('abcdefg',3,2);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select substr(_latin1'abcdefg',3,2) AS `SUBSTR('abcdefg',3,2)`
+explain extended select substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select substring_index(_latin1'1abcd;2abcd;3abcd;4abcd',_latin1';',2) AS `substring_index("1abcd;2abcd;3abcd;4abcd", ';', 2)`
+explain extended select trim(_latin2' a ');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select trim(_latin2' a ') AS `trim(_latin2' a ')`
+explain extended select ltrim(_latin2' a ');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select ltrim(_latin2' a ') AS `ltrim(_latin2' a ')`
+explain extended select rtrim(_latin2' a ');
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select rtrim(_latin2' a ') AS `rtrim(_latin2' a ')`
+explain extended select decode(encode(repeat("a",100000),"monty"),"monty");
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
+1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
+Warnings:
+Note	1003	select decode(encode(repeat(_latin1'a',100000),_latin1'monty'),_latin1'monty') AS `decode(encode(repeat("a",100000),"monty"),"monty")`
 SELECT lpad(12345, 5, "#");
 lpad(12345, 5, "#")
 12345
@@ -1148,772 +1368,117 @@ id	select_type	table	type	possible_keys	
 Warnings:
 Note	1003	select `test`.`t1`.`code` AS `code`,`test`.`t2`.`id` AS `id` from `test`.`t1` join `test`.`t2` where ((`test`.`t1`.`code` = _latin1'a12') and (length(`test`.`t1`.`code`) = 5))
 DROP TABLE t1,t2;
-select locate('he','hello',-2);
-locate('he','hello',-2)
-0
-select locate('lo','hello',-4294967295);
-locate('lo','hello',-4294967295)
-0
-select locate('lo','hello',4294967295);
-locate('lo','hello',4294967295)
-0
-select locate('lo','hello',-4294967296);
-locate('lo','hello',-4294967296)
-0
-select locate('lo','hello',4294967296);
-locate('lo','hello',4294967296)
-0
-select locate('lo','hello',-4294967297);
-locate('lo','hello',-4294967297)
-0
-select locate('lo','hello',4294967297);
-locate('lo','hello',4294967297)
-0
-select locate('lo','hello',-18446744073709551615);
-locate('lo','hello',-18446744073709551615)
-0
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select locate('lo','hello',18446744073709551615);
-locate('lo','hello',18446744073709551615)
-0
-select locate('lo','hello',-18446744073709551616);
-locate('lo','hello',-18446744073709551616)
+select encode(NULL, NULL);
+encode(NULL, NULL)
+NULL
+select encode("data", NULL);
+encode("data", NULL)
+NULL
+select encode(NULL, "password");
+encode(NULL, "password")
+NULL
+select decode(NULL, NULL);
+decode(NULL, NULL)
+NULL
+select decode("data", NULL);
+decode("data", NULL)
+NULL
+select decode(NULL, "password");
+decode(NULL, "password")
+NULL
+select format(NULL, NULL);
+format(NULL, NULL)
+NULL
+select format(pi(), NULL);
+format(pi(), NULL)
+NULL
+select format(NULL, 2);
+format(NULL, 2)
+NULL
+select benchmark(NULL, NULL);
+benchmark(NULL, NULL)
+NULL
+select benchmark(0, NULL);
+benchmark(0, NULL)
+0
+select benchmark(100, NULL);
+benchmark(100, NULL)
+0
+select benchmark(NULL, 1+1);
+benchmark(NULL, 1+1)
+NULL
+set @password="password";
+set @my_data="clear text to encode";
+select md5(encode(@my_data, "password"));
+md5(encode(@my_data, "password"))
+44320fd2b4a0ec92faa2da2122def917
+select md5(encode(@my_data, _utf8 "password"));
+md5(encode(@my_data, _utf8 "password"))
+44320fd2b4a0ec92faa2da2122def917
+select md5(encode(@my_data, binary "password"));
+md5(encode(@my_data, binary "password"))
+44320fd2b4a0ec92faa2da2122def917
+select md5(encode(@my_data, _latin1 "password"));
+md5(encode(@my_data, _latin1 "password"))
+44320fd2b4a0ec92faa2da2122def917
+select md5(encode(@my_data, _koi8r "password"));
+md5(encode(@my_data, _koi8r "password"))
+44320fd2b4a0ec92faa2da2122def917
+select md5(encode(@my_data, (select "password" from dual)));
+md5(encode(@my_data, (select "password" from dual)))
+44320fd2b4a0ec92faa2da2122def917
+select md5(encode(@my_data, concat("pass", "word")));
+md5(encode(@my_data, concat("pass", "word")))
+44320fd2b4a0ec92faa2da2122def917
+select md5(encode(@my_data, @password));
+md5(encode(@my_data, @password))
+44320fd2b4a0ec92faa2da2122def917
+set @my_data="binary encoded data";
+select md5(decode(@my_data, "password"));
+md5(decode(@my_data, "password"))
+5bea8c394368dbc03b76684483b7756b
+select md5(decode(@my_data, _utf8 "password"));
+md5(decode(@my_data, _utf8 "password"))
+5bea8c394368dbc03b76684483b7756b
+select md5(decode(@my_data, binary "password"));
+md5(decode(@my_data, binary "password"))
+5bea8c394368dbc03b76684483b7756b
+select md5(decode(@my_data, _latin1 "password"));
+md5(decode(@my_data, _latin1 "password"))
+5bea8c394368dbc03b76684483b7756b
+select md5(decode(@my_data, _koi8r "password"));
+md5(decode(@my_data, _koi8r "password"))
+5bea8c394368dbc03b76684483b7756b
+select md5(decode(@my_data, (select "password" from dual)));
+md5(decode(@my_data, (select "password" from dual)))
+5bea8c394368dbc03b76684483b7756b
+select md5(decode(@my_data, concat("pass", "word")));
+md5(decode(@my_data, concat("pass", "word")))
+5bea8c394368dbc03b76684483b7756b
+select md5(decode(@my_data, @password));
+md5(decode(@my_data, @password))
+5bea8c394368dbc03b76684483b7756b
+set @dec=5;
+select format(pi(), (1+1));
+format(pi(), (1+1))
+3.14
+select format(pi(), (select 3 from dual));
+format(pi(), (select 3 from dual))
+3.142
+select format(pi(), @dec);
+format(pi(), @dec)
+3.14159
+set @bench_count=10;
+select benchmark(10, pi());
+benchmark(10, pi())
 0
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select locate('lo','hello',18446744073709551616);
-locate('lo','hello',18446744073709551616)
+select benchmark(5+5, pi());
+benchmark(5+5, pi())
 0
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select locate('lo','hello',-18446744073709551617);
-locate('lo','hello',-18446744073709551617)
+select benchmark((select 10 from dual), pi());
+benchmark((select 10 from dual), pi())
 0
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select locate('lo','hello',18446744073709551617);
-locate('lo','hello',18446744073709551617)
+select benchmark(@bench_count, pi());
+benchmark(@bench_count, pi())
 0
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select left('hello', 10);
-left('hello', 10)
-hello
-select left('hello', 0);
-left('hello', 0)
-
-select left('hello', -1);
-left('hello', -1)
-
-select left('hello', -4294967295);
-left('hello', -4294967295)
-
-select left('hello', 4294967295);
-left('hello', 4294967295)
-hello
-select left('hello', -4294967296);
-left('hello', -4294967296)
-
-select left('hello', 4294967296);
-left('hello', 4294967296)
-hello
-select left('hello', -4294967297);
-left('hello', -4294967297)
-
-select left('hello', 4294967297);
-left('hello', 4294967297)
-hello
-select left('hello', -18446744073709551615);
-left('hello', -18446744073709551615)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select left('hello', 18446744073709551615);
-left('hello', 18446744073709551615)
-hello
-select left('hello', -18446744073709551616);
-left('hello', -18446744073709551616)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select left('hello', 18446744073709551616);
-left('hello', 18446744073709551616)
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select left('hello', -18446744073709551617);
-left('hello', -18446744073709551617)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select left('hello', 18446744073709551617);
-left('hello', 18446744073709551617)
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select right('hello', 10);
-right('hello', 10)
-hello
-select right('hello', 0);
-right('hello', 0)
-
-select right('hello', -1);
-right('hello', -1)
-
-select right('hello', -4294967295);
-right('hello', -4294967295)
-
-select right('hello', 4294967295);
-right('hello', 4294967295)
-hello
-select right('hello', -4294967296);
-right('hello', -4294967296)
-
-select right('hello', 4294967296);
-right('hello', 4294967296)
-hello
-select right('hello', -4294967297);
-right('hello', -4294967297)
-
-select right('hello', 4294967297);
-right('hello', 4294967297)
-hello
-select right('hello', -18446744073709551615);
-right('hello', -18446744073709551615)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select right('hello', 18446744073709551615);
-right('hello', 18446744073709551615)
-hello
-select right('hello', -18446744073709551616);
-right('hello', -18446744073709551616)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select right('hello', 18446744073709551616);
-right('hello', 18446744073709551616)
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select right('hello', -18446744073709551617);
-right('hello', -18446744073709551617)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select right('hello', 18446744073709551617);
-right('hello', 18446744073709551617)
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 2, -1);
-substring('hello', 2, -1)
-
-select substring('hello', -1, 1);
-substring('hello', -1, 1)
-o
-select substring('hello', -2, 1);
-substring('hello', -2, 1)
-l
-select substring('hello', -4294967295, 1);
-substring('hello', -4294967295, 1)
-
-select substring('hello', 4294967295, 1);
-substring('hello', 4294967295, 1)
-
-select substring('hello', -4294967296, 1);
-substring('hello', -4294967296, 1)
-
-select substring('hello', 4294967296, 1);
-substring('hello', 4294967296, 1)
-
-select substring('hello', -4294967297, 1);
-substring('hello', -4294967297, 1)
-
-select substring('hello', 4294967297, 1);
-substring('hello', 4294967297, 1)
-
-select substring('hello', -18446744073709551615, 1);
-substring('hello', -18446744073709551615, 1)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 18446744073709551615, 1);
-substring('hello', 18446744073709551615, 1)
-
-select substring('hello', -18446744073709551616, 1);
-substring('hello', -18446744073709551616, 1)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 18446744073709551616, 1);
-substring('hello', 18446744073709551616, 1)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', -18446744073709551617, 1);
-substring('hello', -18446744073709551617, 1)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 18446744073709551617, 1);
-substring('hello', 18446744073709551617, 1)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 1, -1);
-substring('hello', 1, -1)
-
-select substring('hello', 1, -4294967295);
-substring('hello', 1, -4294967295)
-
-select substring('hello', 1, 4294967295);
-substring('hello', 1, 4294967295)
-hello
-select substring('hello', 1, -4294967296);
-substring('hello', 1, -4294967296)
-
-select substring('hello', 1, 4294967296);
-substring('hello', 1, 4294967296)
-hello
-select substring('hello', 1, -4294967297);
-substring('hello', 1, -4294967297)
-
-select substring('hello', 1, 4294967297);
-substring('hello', 1, 4294967297)
-hello
-select substring('hello', 1, -18446744073709551615);
-substring('hello', 1, -18446744073709551615)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 1, 18446744073709551615);
-substring('hello', 1, 18446744073709551615)
-hello
-select substring('hello', 1, -18446744073709551616);
-substring('hello', 1, -18446744073709551616)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 1, 18446744073709551616);
-substring('hello', 1, 18446744073709551616)
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 1, -18446744073709551617);
-substring('hello', 1, -18446744073709551617)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 1, 18446744073709551617);
-substring('hello', 1, 18446744073709551617)
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', -1, -1);
-substring('hello', -1, -1)
-
-select substring('hello', -4294967295, -4294967295);
-substring('hello', -4294967295, -4294967295)
-
-select substring('hello', 4294967295, 4294967295);
-substring('hello', 4294967295, 4294967295)
-
-select substring('hello', -4294967296, -4294967296);
-substring('hello', -4294967296, -4294967296)
-
-select substring('hello', 4294967296, 4294967296);
-substring('hello', 4294967296, 4294967296)
-
-select substring('hello', -4294967297, -4294967297);
-substring('hello', -4294967297, -4294967297)
-
-select substring('hello', 4294967297, 4294967297);
-substring('hello', 4294967297, 4294967297)
-
-select substring('hello', -18446744073709551615, -18446744073709551615);
-substring('hello', -18446744073709551615, -18446744073709551615)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 18446744073709551615, 18446744073709551615);
-substring('hello', 18446744073709551615, 18446744073709551615)
-
-select substring('hello', -18446744073709551616, -18446744073709551616);
-substring('hello', -18446744073709551616, -18446744073709551616)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 18446744073709551616, 18446744073709551616);
-substring('hello', 18446744073709551616, 18446744073709551616)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', -18446744073709551617, -18446744073709551617);
-substring('hello', -18446744073709551617, -18446744073709551617)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select substring('hello', 18446744073709551617, 18446744073709551617);
-substring('hello', 18446744073709551617, 18446744073709551617)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', -1, 1, 'hi');
-insert('hello', -1, 1, 'hi')
-hello
-select insert('hello', -4294967295, 1, 'hi');
-insert('hello', -4294967295, 1, 'hi')
-hello
-select insert('hello', 4294967295, 1, 'hi');
-insert('hello', 4294967295, 1, 'hi')
-hello
-select insert('hello', -4294967296, 1, 'hi');
-insert('hello', -4294967296, 1, 'hi')
-hello
-select insert('hello', 4294967296, 1, 'hi');
-insert('hello', 4294967296, 1, 'hi')
-hello
-select insert('hello', -4294967297, 1, 'hi');
-insert('hello', -4294967297, 1, 'hi')
-hello
-select insert('hello', 4294967297, 1, 'hi');
-insert('hello', 4294967297, 1, 'hi')
-hello
-select insert('hello', -18446744073709551615, 1, 'hi');
-insert('hello', -18446744073709551615, 1, 'hi')
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 18446744073709551615, 1, 'hi');
-insert('hello', 18446744073709551615, 1, 'hi')
-hello
-select insert('hello', -18446744073709551616, 1, 'hi');
-insert('hello', -18446744073709551616, 1, 'hi')
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 18446744073709551616, 1, 'hi');
-insert('hello', 18446744073709551616, 1, 'hi')
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', -18446744073709551617, 1, 'hi');
-insert('hello', -18446744073709551617, 1, 'hi')
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 18446744073709551617, 1, 'hi');
-insert('hello', 18446744073709551617, 1, 'hi')
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 1, -1, 'hi');
-insert('hello', 1, -1, 'hi')
-hi
-select insert('hello', 1, -4294967295, 'hi');
-insert('hello', 1, -4294967295, 'hi')
-hi
-select insert('hello', 1, 4294967295, 'hi');
-insert('hello', 1, 4294967295, 'hi')
-hi
-select insert('hello', 1, -4294967296, 'hi');
-insert('hello', 1, -4294967296, 'hi')
-hi
-select insert('hello', 1, 4294967296, 'hi');
-insert('hello', 1, 4294967296, 'hi')
-hi
-select insert('hello', 1, -4294967297, 'hi');
-insert('hello', 1, -4294967297, 'hi')
-hi
-select insert('hello', 1, 4294967297, 'hi');
-insert('hello', 1, 4294967297, 'hi')
-hi
-select insert('hello', 1, -18446744073709551615, 'hi');
-insert('hello', 1, -18446744073709551615, 'hi')
-hi
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 1, 18446744073709551615, 'hi');
-insert('hello', 1, 18446744073709551615, 'hi')
-hi
-select insert('hello', 1, -18446744073709551616, 'hi');
-insert('hello', 1, -18446744073709551616, 'hi')
-hi
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 1, 18446744073709551616, 'hi');
-insert('hello', 1, 18446744073709551616, 'hi')
-hi
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 1, -18446744073709551617, 'hi');
-insert('hello', 1, -18446744073709551617, 'hi')
-hi
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 1, 18446744073709551617, 'hi');
-insert('hello', 1, 18446744073709551617, 'hi')
-hi
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', -1, -1, 'hi');
-insert('hello', -1, -1, 'hi')
-hello
-select insert('hello', -4294967295, -4294967295, 'hi');
-insert('hello', -4294967295, -4294967295, 'hi')
-hello
-select insert('hello', 4294967295, 4294967295, 'hi');
-insert('hello', 4294967295, 4294967295, 'hi')
-hello
-select insert('hello', -4294967296, -4294967296, 'hi');
-insert('hello', -4294967296, -4294967296, 'hi')
-hello
-select insert('hello', 4294967296, 4294967296, 'hi');
-insert('hello', 4294967296, 4294967296, 'hi')
-hello
-select insert('hello', -4294967297, -4294967297, 'hi');
-insert('hello', -4294967297, -4294967297, 'hi')
-hello
-select insert('hello', 4294967297, 4294967297, 'hi');
-insert('hello', 4294967297, 4294967297, 'hi')
-hello
-select insert('hello', -18446744073709551615, -18446744073709551615, 'hi');
-insert('hello', -18446744073709551615, -18446744073709551615, 'hi')
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 18446744073709551615, 18446744073709551615, 'hi');
-insert('hello', 18446744073709551615, 18446744073709551615, 'hi')
-hello
-select insert('hello', -18446744073709551616, -18446744073709551616, 'hi');
-insert('hello', -18446744073709551616, -18446744073709551616, 'hi')
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 18446744073709551616, 18446744073709551616, 'hi');
-insert('hello', 18446744073709551616, 18446744073709551616, 'hi')
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', -18446744073709551617, -18446744073709551617, 'hi');
-insert('hello', -18446744073709551617, -18446744073709551617, 'hi')
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select insert('hello', 18446744073709551617, 18446744073709551617, 'hi');
-insert('hello', 18446744073709551617, 18446744073709551617, 'hi')
-hello
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select repeat('hello', -1);
-repeat('hello', -1)
-
-select repeat('hello', -4294967295);
-repeat('hello', -4294967295)
-
-select repeat('hello', 4294967295);
-repeat('hello', 4294967295)
-NULL
-Warnings:
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select repeat('hello', -4294967296);
-repeat('hello', -4294967296)
-
-select repeat('hello', 4294967296);
-repeat('hello', 4294967296)
-NULL
-Warnings:
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select repeat('hello', -4294967297);
-repeat('hello', -4294967297)
-
-select repeat('hello', 4294967297);
-repeat('hello', 4294967297)
-NULL
-Warnings:
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select repeat('hello', -18446744073709551615);
-repeat('hello', -18446744073709551615)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select repeat('hello', 18446744073709551615);
-repeat('hello', 18446744073709551615)
-NULL
-Warnings:
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select repeat('hello', -18446744073709551616);
-repeat('hello', -18446744073709551616)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select repeat('hello', 18446744073709551616);
-repeat('hello', 18446744073709551616)
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select repeat('hello', -18446744073709551617);
-repeat('hello', -18446744073709551617)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select repeat('hello', 18446744073709551617);
-repeat('hello', 18446744073709551617)
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select space(-1);
-space(-1)
-
-select space(-4294967295);
-space(-4294967295)
-
-select space(4294967295);
-space(4294967295)
-NULL
-Warnings:
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select space(-4294967296);
-space(-4294967296)
-
-select space(4294967296);
-space(4294967296)
-NULL
-Warnings:
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select space(-4294967297);
-space(-4294967297)
-
-select space(4294967297);
-space(4294967297)
-NULL
-Warnings:
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select space(-18446744073709551615);
-space(-18446744073709551615)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select space(18446744073709551615);
-space(18446744073709551615)
-NULL
-Warnings:
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select space(-18446744073709551616);
-space(-18446744073709551616)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select space(18446744073709551616);
-space(18446744073709551616)
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select space(-18446744073709551617);
-space(-18446744073709551617)
-
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select space(18446744073709551617);
-space(18446744073709551617)
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Warning	1301	Result of repeat() was larger than max_allowed_packet (1048576) - truncated
-select rpad('hello', -1, '1');
-rpad('hello', -1, '1')
-NULL
-select rpad('hello', -4294967295, '1');
-rpad('hello', -4294967295, '1')
-NULL
-select rpad('hello', 4294967295, '1');
-rpad('hello', 4294967295, '1')
-NULL
-Warnings:
-Warning	1301	Result of rpad() was larger than max_allowed_packet (1048576) - truncated
-select rpad('hello', -4294967296, '1');
-rpad('hello', -4294967296, '1')
-NULL
-select rpad('hello', 4294967296, '1');
-rpad('hello', 4294967296, '1')
-NULL
-Warnings:
-Warning	1301	Result of rpad() was larger than max_allowed_packet (1048576) - truncated
-select rpad('hello', -4294967297, '1');
-rpad('hello', -4294967297, '1')
-NULL
-select rpad('hello', 4294967297, '1');
-rpad('hello', 4294967297, '1')
-NULL
-Warnings:
-Warning	1301	Result of rpad() was larger than max_allowed_packet (1048576) - truncated
-select rpad('hello', -18446744073709551615, '1');
-rpad('hello', -18446744073709551615, '1')
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select rpad('hello', 18446744073709551615, '1');
-rpad('hello', 18446744073709551615, '1')
-NULL
-Warnings:
-Warning	1301	Result of rpad() was larger than max_allowed_packet (1048576) - truncated
-select rpad('hello', -18446744073709551616, '1');
-rpad('hello', -18446744073709551616, '1')
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select rpad('hello', 18446744073709551616, '1');
-rpad('hello', 18446744073709551616, '1')
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Warning	1301	Result of rpad() was larger than max_allowed_packet (1048576) - truncated
-select rpad('hello', -18446744073709551617, '1');
-rpad('hello', -18446744073709551617, '1')
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select rpad('hello', 18446744073709551617, '1');
-rpad('hello', 18446744073709551617, '1')
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Warning	1301	Result of rpad() was larger than max_allowed_packet (1048576) - truncated
-select lpad('hello', -1, '1');
-lpad('hello', -1, '1')
-NULL
-select lpad('hello', -4294967295, '1');
-lpad('hello', -4294967295, '1')
-NULL
-select lpad('hello', 4294967295, '1');
-lpad('hello', 4294967295, '1')
-NULL
-Warnings:
-Warning	1301	Result of lpad() was larger than max_allowed_packet (1048576) - truncated
-select lpad('hello', -4294967296, '1');
-lpad('hello', -4294967296, '1')
-NULL
-select lpad('hello', 4294967296, '1');
-lpad('hello', 4294967296, '1')
-NULL
-Warnings:
-Warning	1301	Result of lpad() was larger than max_allowed_packet (1048576) - truncated
-select lpad('hello', -4294967297, '1');
-lpad('hello', -4294967297, '1')
-NULL
-select lpad('hello', 4294967297, '1');
-lpad('hello', 4294967297, '1')
-NULL
-Warnings:
-Warning	1301	Result of lpad() was larger than max_allowed_packet (1048576) - truncated
-select lpad('hello', -18446744073709551615, '1');
-lpad('hello', -18446744073709551615, '1')
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select lpad('hello', 18446744073709551615, '1');
-lpad('hello', 18446744073709551615, '1')
-NULL
-Warnings:
-Warning	1301	Result of lpad() was larger than max_allowed_packet (1048576) - truncated
-select lpad('hello', -18446744073709551616, '1');
-lpad('hello', -18446744073709551616, '1')
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select lpad('hello', 18446744073709551616, '1');
-lpad('hello', 18446744073709551616, '1')
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Warning	1301	Result of lpad() was larger than max_allowed_packet (1048576) - truncated
-select lpad('hello', -18446744073709551617, '1');
-lpad('hello', -18446744073709551617, '1')
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-select lpad('hello', 18446744073709551617, '1');
-lpad('hello', 18446744073709551617, '1')
-NULL
-Warnings:
-Error	1292	Truncated incorrect DECIMAL value: ''
-Error	1292	Truncated incorrect DECIMAL value: ''
-Warning	1301	Result of lpad() was larger than max_allowed_packet (1048576) - truncated
-SET @orig_sql_mode = @@SQL_MODE;
-SET SQL_MODE=traditional;
-SELECT CHAR(0xff,0x8f USING utf8);
-CHAR(0xff,0x8f USING utf8)
-NULL
-Warnings:
-Error	1300	Invalid utf8 character string: 'FF8F'
-SELECT CHAR(0xff,0x8f USING utf8) IS NULL;
-CHAR(0xff,0x8f USING utf8) IS NULL
-1
-Warnings:
-Error	1300	Invalid utf8 character string: 'FF8F'
-SET SQL_MODE=@orig_sql_mode;
 End of 5.0 tests
Thread
bk commit into 5.1 tree (malff:1.2364)marc.alff16 Nov