Loading mysql-test/r/sp.result +16 −0 Original line number Diff line number Diff line Loading @@ -3331,4 +3331,20 @@ set @x=y; end| call bug13124()| drop procedure bug13124| drop procedure if exists bug12979_1| create procedure bug12979_1(inout d decimal(5)) set d = d / 2| set @bug12979_user_var = NULL| call bug12979_1(@bug12979_user_var)| drop procedure bug12979_1| drop procedure if exists bug12979_2| create procedure bug12979_2() begin declare internal_var decimal(5); set internal_var= internal_var / 2; select internal_var; end| call bug12979_2()| internal_var NULL drop procedure bug12979_2| drop table t1,t2; mysql-test/r/type_newdecimal.result +3 −0 Original line number Diff line number Diff line Loading @@ -1016,3 +1016,6 @@ v tdec v tdec 9 0 drop procedure wg2; select cast(@non_existing_user_var/2 as DECIMAL); cast(@non_existing_user_var/2 as DECIMAL) NULL mysql-test/t/sp.test +29 −0 Original line number Diff line number Diff line Loading @@ -4177,6 +4177,35 @@ end| call bug13124()| drop procedure bug13124| # # Bug #12979 Stored procedures: crash if inout decimal parameter # # check NULL inout parameters processing --disable_warnings drop procedure if exists bug12979_1| --enable_warnings create procedure bug12979_1(inout d decimal(5)) set d = d / 2| set @bug12979_user_var = NULL| call bug12979_1(@bug12979_user_var)| drop procedure bug12979_1| # check NULL local variables processing --disable_warnings drop procedure if exists bug12979_2| --enable_warnings create procedure bug12979_2() begin declare internal_var decimal(5); set internal_var= internal_var / 2; select internal_var; end| call bug12979_2()| drop procedure bug12979_2| # # BUG#NNNN: New bug synopsis # Loading mysql-test/t/type_newdecimal.test +7 −0 Original line number Diff line number Diff line Loading @@ -1037,3 +1037,10 @@ call wg2()// delimiter ;// drop procedure wg2; # # Bug #12979 Stored procedures: crash if inout decimal parameter # (not a SP bug in fact) # select cast(@non_existing_user_var/2 as DECIMAL); sql/item_func.cc +1 −1 Original line number Diff line number Diff line Loading @@ -765,7 +765,7 @@ my_decimal *Item_func_numhybrid::val_decimal(my_decimal *decimal_value) } case REAL_RESULT: { double result= (double)int_op(); double result= (double)real_op(); double2my_decimal(E_DEC_FATAL_ERROR, result, decimal_value); break; } Loading Loading
mysql-test/r/sp.result +16 −0 Original line number Diff line number Diff line Loading @@ -3331,4 +3331,20 @@ set @x=y; end| call bug13124()| drop procedure bug13124| drop procedure if exists bug12979_1| create procedure bug12979_1(inout d decimal(5)) set d = d / 2| set @bug12979_user_var = NULL| call bug12979_1(@bug12979_user_var)| drop procedure bug12979_1| drop procedure if exists bug12979_2| create procedure bug12979_2() begin declare internal_var decimal(5); set internal_var= internal_var / 2; select internal_var; end| call bug12979_2()| internal_var NULL drop procedure bug12979_2| drop table t1,t2;
mysql-test/r/type_newdecimal.result +3 −0 Original line number Diff line number Diff line Loading @@ -1016,3 +1016,6 @@ v tdec v tdec 9 0 drop procedure wg2; select cast(@non_existing_user_var/2 as DECIMAL); cast(@non_existing_user_var/2 as DECIMAL) NULL
mysql-test/t/sp.test +29 −0 Original line number Diff line number Diff line Loading @@ -4177,6 +4177,35 @@ end| call bug13124()| drop procedure bug13124| # # Bug #12979 Stored procedures: crash if inout decimal parameter # # check NULL inout parameters processing --disable_warnings drop procedure if exists bug12979_1| --enable_warnings create procedure bug12979_1(inout d decimal(5)) set d = d / 2| set @bug12979_user_var = NULL| call bug12979_1(@bug12979_user_var)| drop procedure bug12979_1| # check NULL local variables processing --disable_warnings drop procedure if exists bug12979_2| --enable_warnings create procedure bug12979_2() begin declare internal_var decimal(5); set internal_var= internal_var / 2; select internal_var; end| call bug12979_2()| drop procedure bug12979_2| # # BUG#NNNN: New bug synopsis # Loading
mysql-test/t/type_newdecimal.test +7 −0 Original line number Diff line number Diff line Loading @@ -1037,3 +1037,10 @@ call wg2()// delimiter ;// drop procedure wg2; # # Bug #12979 Stored procedures: crash if inout decimal parameter # (not a SP bug in fact) # select cast(@non_existing_user_var/2 as DECIMAL);
sql/item_func.cc +1 −1 Original line number Diff line number Diff line Loading @@ -765,7 +765,7 @@ my_decimal *Item_func_numhybrid::val_decimal(my_decimal *decimal_value) } case REAL_RESULT: { double result= (double)int_op(); double result= (double)real_op(); double2my_decimal(E_DEC_FATAL_ERROR, result, decimal_value); break; } Loading