Commit 7001961e authored by unknown's avatar unknown
Browse files

Merge bk-internal.mysql.com:/home/bk/mysql-5.0

into  mysql.com:/home/dlenev/src/mysql-5.0-mysqlproc

parents 02bfa710 7310c345
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -876,3 +876,6 @@ abc abc c bc abc
abcd	abcd	d	cd	bcd	abcd	
abcde	abcde	e	de	cde	bcde	abcde
drop table t1;
select hex(29223372036854775809), hex(-29223372036854775809);
hex(29223372036854775809)	hex(-29223372036854775809)
FFFFFFFFFFFFFFFF	FFFFFFFFFFFFFFFF
+1 −1
Original line number Diff line number Diff line
@@ -84,4 +84,4 @@ a
show slave status;
Slave_IO_State	Master_Host	Master_User	Master_Port	Connect_Retry	Master_Log_File	Read_Master_Log_Pos	Relay_Log_File	Relay_Log_Pos	Relay_Master_Log_File	Slave_IO_Running	Slave_SQL_Running	Replicate_Do_DB	Replicate_Ignore_DB	Replicate_Do_Table	Replicate_Ignore_Table	Replicate_Wild_Do_Table	Replicate_Wild_Ignore_Table	Last_Errno	Last_Error	Skip_Counter	Exec_Master_Log_Pos	Relay_Log_Space	Until_Condition	Until_Log_File	Until_Log_Pos	Master_SSL_Allowed	Master_SSL_CA_File	Master_SSL_CA_Path	Master_SSL_Cert	Master_SSL_Cipher	Master_SSL_Key	Seconds_Behind_Master
#	127.0.0.1	root	MASTER_MYPORT	1	master-bin.000001	18911	#	#	master-bin.000001	Yes	Yes							0		0	18911	#	None		0	No						#
drop table t1,t2;
drop table t1,t2,t3,t4;
+5 −0
Original line number Diff line number Diff line
@@ -608,3 +608,8 @@ insert t1 values ('ab'), ('abc'), ('abcd'), ('abcde');
select *,substring(b,1),substring(b,-1),substring(b,-2),substring(b,-3),substring(b,-4),substring(b,-5) from t1;
select * from (select *,substring(b,1),substring(b,-1),substring(b,-2),substring(b,-3),substring(b,-4),substring(b,-5) from t1) t;
drop table t1;

#
# Bug #9854  hex() and out of range handling
#
select hex(29223372036854775809), hex(-29223372036854775809);
+1 −1
Original line number Diff line number Diff line
@@ -107,5 +107,5 @@ select * from t2;
show slave status;

connection master;
drop table t1,t2;
drop table t1,t2,t3,t4;
sync_slave_with_master;
+15 −2
Original line number Diff line number Diff line
@@ -2380,9 +2380,22 @@ String *Item_func_hex::val_str(String *str)
  DBUG_ASSERT(fixed == 1);
  if (args[0]->result_type() != STRING_RESULT)
  {
    /* Return hex of unsigned longlong value */
    longlong dec= args[0]->val_int();
    ulonglong dec;
    char ans[65],*ptr;
    /* Return hex of unsigned longlong value */
    if (args[0]->result_type() == REAL_RESULT ||
        args[0]->result_type() == DECIMAL_RESULT)
    {
      double val= args[0]->val_real();
      if ((val <= (double) LONGLONG_MIN) || 
          (val >= (double) (ulonglong) ULONGLONG_MAX))
        dec=  ~(longlong) 0;
      else
        dec= (ulonglong) (val + (val > 0 ? 0.5 : -0.5));
    }
    else
      dec= (ulonglong) args[0]->val_int();

    if ((null_value= args[0]->null_value))
      return 0;
    ptr= longlong2str(dec,ans,16);