Loading mysql-test/r/func_str.result +3 −0 Original line number Diff line number Diff line Loading @@ -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 mysql-test/r/rpl_deadlock.result +1 −1 Original line number Diff line number Diff line Loading @@ -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; mysql-test/t/func_str.test +5 −0 Original line number Diff line number Diff line Loading @@ -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); mysql-test/t/rpl_deadlock.test +1 −1 Original line number Diff line number Diff line Loading @@ -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; sql/item_strfunc.cc +15 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
mysql-test/r/func_str.result +3 −0 Original line number Diff line number Diff line Loading @@ -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
mysql-test/r/rpl_deadlock.result +1 −1 Original line number Diff line number Diff line Loading @@ -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;
mysql-test/t/func_str.test +5 −0 Original line number Diff line number Diff line Loading @@ -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);
mysql-test/t/rpl_deadlock.test +1 −1 Original line number Diff line number Diff line Loading @@ -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;
sql/item_strfunc.cc +15 −2 Original line number Diff line number Diff line Loading @@ -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); Loading