Commit c6348e3f authored by unknown's avatar unknown

Bug#7648 - Stored procedure crash when invoking a function that returns a bit

  bugfix 9102 corrected the crashing, this corrects the result.


mysql-test/r/sp.result:
  Bug#7648
    New test for bug
mysql-test/t/sp.test:
  Bug#7648
    New test for bug
sql/item_func.h:
  Bug#7648
    Cannot cheat in Item_func_sp::val_int()
parent 515f37f2
...@@ -2964,4 +2964,10 @@ select bug9102(); ...@@ -2964,4 +2964,10 @@ select bug9102();
drop function bug9102| drop function bug9102|
bug9102() bug9102()
a a
drop procedure if exists bug7648|
create function bug7648() returns bit(8) return 'a'|
select bug7648()|
bug7648()
a
drop function bug7648|
drop table t1,t2; drop table t1,t2;
...@@ -3627,16 +3627,29 @@ set global query_cache_size = @qcs1| ...@@ -3627,16 +3627,29 @@ set global query_cache_size = @qcs1|
delete from t1| delete from t1|
drop function bug9902| drop function bug9902|
# #
# BUG#9102: New bug synopsis # BUG#9102: Stored proccedures: function which returns blob causes crash
# #
--disable_warnings --disable_warnings
drop function if exists bug9102| drop function if exists bug9102|
--enable_warnings --enable_warnings
create function bug9102() returns blob return 'a'| create function bug9102() returns blob return 'a'|
select bug9102(); select bug9102()|
drop function bug9102| drop function bug9102|
#
# BUG#7648: Stored procedure crash when invoking a function that returns a bit
#
--disable_warnings
drop procedure if exists bug7648|
--enable_warnings
create function bug7648() returns bit(8) return 'a'|
select bug7648()|
drop function bug7648|
# #
# BUG#NNNN: New bug synopsis # BUG#NNNN: New bug synopsis
# #
......
...@@ -1308,7 +1308,17 @@ class Item_func_sp :public Item_func ...@@ -1308,7 +1308,17 @@ class Item_func_sp :public Item_func
longlong val_int() longlong val_int()
{ {
return (longlong)Item_func_sp::val_real(); Item *it;
longlong l;
if (execute(&it))
{
null_value= 1;
return 0LL;
}
l= it->val_int();
null_value= it->null_value;
return l;
} }
double val_real() double val_real()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment