Merge ahristov@bk-internal.mysql.com:/home/bk/mysql-5.0-maint
into example.com:/work/bug23760/my50
This commit is contained in:
commit
bddd935bb0
@ -2705,11 +2705,11 @@ row_count()
|
||||
call bug4905()|
|
||||
select row_count()|
|
||||
row_count()
|
||||
0
|
||||
-1
|
||||
call bug4905()|
|
||||
select row_count()|
|
||||
row_count()
|
||||
0
|
||||
-1
|
||||
select * from t3|
|
||||
s1
|
||||
1
|
||||
@ -5627,4 +5627,85 @@ Called B
|
||||
drop procedure proc_21462_a|
|
||||
drop procedure proc_21462_b|
|
||||
End of 5.0 tests
|
||||
DROP TABLE IF EXISTS bug23760|
|
||||
DROP TABLE IF EXISTS bug23760_log|
|
||||
DROP PROCEDURE IF EXISTS bug23760_update_log|
|
||||
DROP PROCEDURE IF EXISTS bug23760_test_row_count|
|
||||
DROP FUNCTION IF EXISTS bug23760_rc_test|
|
||||
CREATE TABLE bug23760 (
|
||||
id INT NOT NULL AUTO_INCREMENT ,
|
||||
num INT NOT NULL ,
|
||||
PRIMARY KEY ( id )
|
||||
)|
|
||||
CREATE TABLE bug23760_log (
|
||||
id INT NOT NULL AUTO_INCREMENT ,
|
||||
reason VARCHAR(50)NULL ,
|
||||
ammount INT NOT NULL ,
|
||||
PRIMARY KEY ( id )
|
||||
)|
|
||||
CREATE PROCEDURE bug23760_update_log(r Varchar(50), a INT)
|
||||
BEGIN
|
||||
INSERT INTO bug23760_log (reason, ammount) VALUES(r, a);
|
||||
END|
|
||||
CREATE PROCEDURE bug23760_test_row_count()
|
||||
BEGIN
|
||||
UPDATE bug23760 SET num = num + 1;
|
||||
CALL bug23760_update_log('Test is working', ROW_COUNT());
|
||||
UPDATE bug23760 SET num = num - 1;
|
||||
END|
|
||||
CREATE PROCEDURE bug23760_test_row_count2(level INT)
|
||||
BEGIN
|
||||
IF level THEN
|
||||
UPDATE bug23760 SET num = num + 1;
|
||||
CALL bug23760_update_log('Test2 is working', ROW_COUNT());
|
||||
CALL bug23760_test_row_count2(level - 1);
|
||||
END IF;
|
||||
END|
|
||||
CREATE FUNCTION bug23760_rc_test(in_var INT) RETURNS INT RETURN in_var|
|
||||
INSERT INTO bug23760 (num) VALUES (0), (1), (1), (2), (3), (5), (8)|
|
||||
SELECT ROW_COUNT()|
|
||||
ROW_COUNT()
|
||||
7
|
||||
CALL bug23760_test_row_count()|
|
||||
SELECT * FROM bug23760_log ORDER BY id|
|
||||
id reason ammount
|
||||
1 Test is working 7
|
||||
SET @save_max_sp_recursion= @@max_sp_recursion_depth|
|
||||
SELECT @save_max_sp_recursion|
|
||||
@save_max_sp_recursion
|
||||
0
|
||||
SET max_sp_recursion_depth= 5|
|
||||
SELECT @@max_sp_recursion_depth|
|
||||
@@max_sp_recursion_depth
|
||||
5
|
||||
CALL bug23760_test_row_count2(2)|
|
||||
SELECT ROW_COUNT()|
|
||||
ROW_COUNT()
|
||||
1
|
||||
SELECT * FROM bug23760_log ORDER BY id|
|
||||
id reason ammount
|
||||
1 Test is working 7
|
||||
2 Test2 is working 7
|
||||
3 Test2 is working 7
|
||||
SELECT * FROM bug23760 ORDER by ID|
|
||||
id num
|
||||
1 2
|
||||
2 3
|
||||
3 3
|
||||
4 4
|
||||
5 5
|
||||
6 7
|
||||
7 10
|
||||
SET max_sp_recursion_depth= @save_max_sp_recursion|
|
||||
SELECT bug23760_rc_test(123)|
|
||||
bug23760_rc_test(123)
|
||||
123
|
||||
INSERT INTO bug23760 (num) VALUES (13), (21), (34), (55)|
|
||||
SELECT bug23760_rc_test(ROW_COUNT())|
|
||||
bug23760_rc_test(ROW_COUNT())
|
||||
4
|
||||
DROP TABLE bug23760, bug23760_log|
|
||||
DROP PROCEDURE bug23760_update_log|
|
||||
DROP PROCEDURE bug23760_test_row_count|
|
||||
DROP FUNCTION bug23760_rc_test|
|
||||
drop table t1,t2;
|
||||
|
@ -6590,6 +6590,83 @@ drop procedure proc_21462_b|
|
||||
--echo End of 5.0 tests
|
||||
|
||||
|
||||
#
|
||||
# BUG#23760: ROW_COUNT() and store procedure not owrking together
|
||||
#
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS bug23760|
|
||||
DROP TABLE IF EXISTS bug23760_log|
|
||||
DROP PROCEDURE IF EXISTS bug23760_update_log|
|
||||
DROP PROCEDURE IF EXISTS bug23760_test_row_count|
|
||||
DROP FUNCTION IF EXISTS bug23760_rc_test|
|
||||
--enable_warnings
|
||||
CREATE TABLE bug23760 (
|
||||
id INT NOT NULL AUTO_INCREMENT ,
|
||||
num INT NOT NULL ,
|
||||
PRIMARY KEY ( id )
|
||||
)|
|
||||
|
||||
CREATE TABLE bug23760_log (
|
||||
id INT NOT NULL AUTO_INCREMENT ,
|
||||
reason VARCHAR(50)NULL ,
|
||||
ammount INT NOT NULL ,
|
||||
PRIMARY KEY ( id )
|
||||
)|
|
||||
|
||||
CREATE PROCEDURE bug23760_update_log(r Varchar(50), a INT)
|
||||
BEGIN
|
||||
INSERT INTO bug23760_log (reason, ammount) VALUES(r, a);
|
||||
END|
|
||||
|
||||
CREATE PROCEDURE bug23760_test_row_count()
|
||||
BEGIN
|
||||
UPDATE bug23760 SET num = num + 1;
|
||||
CALL bug23760_update_log('Test is working', ROW_COUNT());
|
||||
UPDATE bug23760 SET num = num - 1;
|
||||
END|
|
||||
|
||||
|
||||
CREATE PROCEDURE bug23760_test_row_count2(level INT)
|
||||
BEGIN
|
||||
IF level THEN
|
||||
UPDATE bug23760 SET num = num + 1;
|
||||
CALL bug23760_update_log('Test2 is working', ROW_COUNT());
|
||||
CALL bug23760_test_row_count2(level - 1);
|
||||
END IF;
|
||||
END|
|
||||
|
||||
CREATE FUNCTION bug23760_rc_test(in_var INT) RETURNS INT RETURN in_var|
|
||||
|
||||
INSERT INTO bug23760 (num) VALUES (0), (1), (1), (2), (3), (5), (8)|
|
||||
SELECT ROW_COUNT()|
|
||||
|
||||
CALL bug23760_test_row_count()|
|
||||
SELECT * FROM bug23760_log ORDER BY id|
|
||||
|
||||
SET @save_max_sp_recursion= @@max_sp_recursion_depth|
|
||||
SELECT @save_max_sp_recursion|
|
||||
SET max_sp_recursion_depth= 5|
|
||||
SELECT @@max_sp_recursion_depth|
|
||||
CALL bug23760_test_row_count2(2)|
|
||||
SELECT ROW_COUNT()|
|
||||
SELECT * FROM bug23760_log ORDER BY id|
|
||||
SELECT * FROM bug23760 ORDER by ID|
|
||||
SET max_sp_recursion_depth= @save_max_sp_recursion|
|
||||
|
||||
SELECT bug23760_rc_test(123)|
|
||||
INSERT INTO bug23760 (num) VALUES (13), (21), (34), (55)|
|
||||
SELECT bug23760_rc_test(ROW_COUNT())|
|
||||
|
||||
DROP TABLE bug23760, bug23760_log|
|
||||
DROP PROCEDURE bug23760_update_log|
|
||||
DROP PROCEDURE bug23760_test_row_count|
|
||||
DROP FUNCTION bug23760_rc_test|
|
||||
|
||||
#
|
||||
# NOTE: The delimiter is `|`, and not `;`. It is changed to `;`
|
||||
# at the end of the file!
|
||||
#
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
|
@ -4465,8 +4465,6 @@ end_with_restore_list:
|
||||
select_limit= thd->variables.select_limit;
|
||||
thd->variables.select_limit= HA_POS_ERROR;
|
||||
|
||||
thd->row_count_func= 0;
|
||||
|
||||
/*
|
||||
We never write CALL statements into binlog:
|
||||
- If the mode is non-prelocked, each statement will be logged
|
||||
|
Loading…
x
Reference in New Issue
Block a user