mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
Merge mysql.com:/usr/local/bk/mysql-5.0
into mysql.com:/home/pem/work/mysql-5.0
This commit is contained in:
commit
3caaded39c
5 changed files with 137 additions and 9 deletions
|
@ -2850,4 +2850,62 @@ begin
|
|||
end|
|
||||
call avg ()|
|
||||
drop procedure avg|
|
||||
drop procedure if exists bug6129|
|
||||
set @@sql_mode = 'traditional'|
|
||||
create procedure bug6129(mode text)
|
||||
select @@sql_mode = mode|
|
||||
call bug6129(@@sql_mode)|
|
||||
@@sql_mode = mode
|
||||
1
|
||||
set @@sql_mode = ''|
|
||||
call bug6129(@@sql_mode)|
|
||||
@@sql_mode = mode
|
||||
0
|
||||
drop procedure bug6129|
|
||||
drop procedure if exists bug9856|
|
||||
create procedure bug9856()
|
||||
begin
|
||||
declare v int;
|
||||
declare c cursor for select data from t1;
|
||||
declare exit handler for sqlexception, not found select '16';
|
||||
open c;
|
||||
fetch c into v;
|
||||
select v;
|
||||
end|
|
||||
delete from t1|
|
||||
call bug9856()|
|
||||
16
|
||||
16
|
||||
call bug9856()|
|
||||
16
|
||||
16
|
||||
drop procedure bug9856|
|
||||
drop procedure if exists bug9674_1|
|
||||
drop procedure if exists bug9674_2|
|
||||
create procedure bug9674_1(out arg int)
|
||||
begin
|
||||
declare temp_in1 int default 0;
|
||||
declare temp_fl1 int default 0;
|
||||
set temp_in1 = 100;
|
||||
set temp_fl1 = temp_in1/10;
|
||||
set arg = temp_fl1;
|
||||
end|
|
||||
create procedure bug9674_2()
|
||||
begin
|
||||
declare v int default 100;
|
||||
select v/10;
|
||||
end|
|
||||
call bug9674_1(@sptmp)|
|
||||
call bug9674_1(@sptmp)|
|
||||
select @sptmp|
|
||||
@sptmp
|
||||
10
|
||||
call bug9674_2()|
|
||||
v/10
|
||||
10.00000
|
||||
call bug9674_2()|
|
||||
v/10
|
||||
10.00000
|
||||
drop procedure bug9674_1|
|
||||
drop procedure bug9674_2|
|
||||
drop table t1,t2;
|
||||
|
|
|
@ -3495,6 +3495,82 @@ call avg ()|
|
|||
drop procedure avg|
|
||||
|
||||
|
||||
#
|
||||
# BUG#6129: Stored procedure won't display @@sql_mode value
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug6129|
|
||||
--enable_warnings
|
||||
set @@sql_mode = 'traditional'|
|
||||
create procedure bug6129(mode text)
|
||||
select @@sql_mode = mode|
|
||||
|
||||
# 1
|
||||
call bug6129(@@sql_mode)|
|
||||
set @@sql_mode = ''|
|
||||
# 0
|
||||
call bug6129(@@sql_mode)|
|
||||
|
||||
drop procedure bug6129|
|
||||
|
||||
|
||||
#
|
||||
# BUG#9856: Stored procedures: crash if handler for sqlexception, not found
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug9856|
|
||||
--enable_warnings
|
||||
create procedure bug9856()
|
||||
begin
|
||||
declare v int;
|
||||
declare c cursor for select data from t1;
|
||||
declare exit handler for sqlexception, not found select '16';
|
||||
|
||||
open c;
|
||||
fetch c into v;
|
||||
select v;
|
||||
end|
|
||||
|
||||
delete from t1|
|
||||
call bug9856()|
|
||||
call bug9856()|
|
||||
drop procedure bug9856|
|
||||
|
||||
|
||||
#
|
||||
# BUG##9674: Stored Procs: Using declared vars in algebric operation causes
|
||||
# system crash.
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug9674_1|
|
||||
drop procedure if exists bug9674_2|
|
||||
--enable_warnings
|
||||
create procedure bug9674_1(out arg int)
|
||||
begin
|
||||
declare temp_in1 int default 0;
|
||||
declare temp_fl1 int default 0;
|
||||
|
||||
set temp_in1 = 100;
|
||||
set temp_fl1 = temp_in1/10;
|
||||
set arg = temp_fl1;
|
||||
end|
|
||||
|
||||
create procedure bug9674_2()
|
||||
begin
|
||||
declare v int default 100;
|
||||
|
||||
select v/10;
|
||||
end|
|
||||
|
||||
call bug9674_1(@sptmp)|
|
||||
call bug9674_1(@sptmp)|
|
||||
select @sptmp|
|
||||
call bug9674_2()|
|
||||
call bug9674_2()|
|
||||
drop procedure bug9674_1|
|
||||
drop procedure bug9674_2|
|
||||
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
|
|
|
@ -700,7 +700,7 @@ my_decimal *Item_splocal::val_decimal(my_decimal *decimal_value)
|
|||
{
|
||||
DBUG_ASSERT(fixed);
|
||||
Item *it= this_item();
|
||||
my_decimal value, *val= it->val_decimal(&value);
|
||||
my_decimal *val= it->val_decimal(decimal_value);
|
||||
Item::null_value= it->null_value;
|
||||
return val;
|
||||
}
|
||||
|
|
|
@ -235,12 +235,6 @@ class sp_pcontext : public Sql_alloc
|
|||
// Handlers
|
||||
//
|
||||
|
||||
inline void
|
||||
add_handler()
|
||||
{
|
||||
m_handlers+= 1;
|
||||
}
|
||||
|
||||
inline void
|
||||
push_handler(sp_cond_type_t *cond)
|
||||
{
|
||||
|
@ -257,7 +251,7 @@ class sp_pcontext : public Sql_alloc
|
|||
}
|
||||
|
||||
inline void
|
||||
push_handlers(uint n)
|
||||
add_handlers(uint n)
|
||||
{
|
||||
m_handlers+= n;
|
||||
}
|
||||
|
|
|
@ -1681,7 +1681,6 @@ sp_decl:
|
|||
|
||||
sp->add_instr(i);
|
||||
sp->push_backpatch(i, ctx->push_label((char *)"", 0));
|
||||
ctx->add_handler();
|
||||
sp->m_in_handler= TRUE;
|
||||
}
|
||||
sp_hcond_list sp_proc_stmt
|
||||
|
@ -1709,6 +1708,7 @@ sp_decl:
|
|||
sp->m_in_handler= FALSE;
|
||||
$$.vars= $$.conds= $$.curs= 0;
|
||||
$$.hndlrs= $6;
|
||||
ctx->add_handlers($6);
|
||||
}
|
||||
| DECLARE_SYM ident CURSOR_SYM FOR_SYM sp_cursor_stmt
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue