1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

Fixed BUG#4905: Stored procedure doesn't clear for "Rows affected".

mysql-test/r/sp.result:
  New test case for BUG#4905
mysql-test/t/sp.test:
  New test case for BUG#4905
sql/sql_parse.cc:
  Reset row count before CALL.
This commit is contained in:
unknown
2004-09-29 18:55:05 +02:00
parent f61034d721
commit aaa54ac7e7
3 changed files with 56 additions and 0 deletions

View File

@ -1894,6 +1894,32 @@ flush status|
flush query cache|
delete from t1|
drop procedure bug3583|
drop table if exists t3|
drop procedure if exists bug4905|
create table t3 (s1 int,primary key (s1))|
create procedure bug4905()
begin
declare v int;
declare continue handler for sqlstate '23000' set v = 5;
insert into t3 values (1);
end|
call bug4905()|
select row_count()|
row_count()
1
call bug4905()|
select row_count()|
row_count()
0
call bug4905()|
select row_count()|
row_count()
0
select * from t3|
s1
1
drop procedure bug4905|
drop table t3|
drop table if exists fac|
create table fac (n int unsigned not null primary key, f bigint unsigned)|
create procedure ifac(n int unsigned)

View File

@ -2056,6 +2056,35 @@ flush query cache|
delete from t1|
drop procedure bug3583|
#
# BUG#4905: Stored procedure doesn't clear for "Rows affected"
#
--disable_warnings
drop table if exists t3|
drop procedure if exists bug4905|
--enable_warnings
create table t3 (s1 int,primary key (s1))|
create procedure bug4905()
begin
declare v int;
declare continue handler for sqlstate '23000' set v = 5;
insert into t3 values (1);
end|
call bug4905()|
select row_count()|
call bug4905()|
select row_count()|
call bug4905()|
select row_count()|
select * from t3|
drop procedure bug4905|
drop table t3|
#
# Some "real" examples

View File

@ -3724,6 +3724,7 @@ purposes internal to the MySQL server", MYF(0));
select_limit= thd->variables.select_limit;
thd->variables.select_limit= HA_POS_ERROR;
thd->row_count_func= 0;
res= sp->execute_procedure(thd, &lex->value_list);
thd->variables.select_limit= select_limit;