mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge gleb.loc:/home/uchum/work/bk/5.0-opt-29834
into gleb.loc:/home/uchum/work/bk/5.0-opt sql/sql_base.cc: Auto merged mysql-test/r/sp.result: Merge with local tree. mysql-test/t/sp.test: Merge with local tree.
This commit is contained in:
@ -1,5 +1,8 @@
|
||||
use test;
|
||||
drop table if exists t1,t2,t3,t4;
|
||||
drop view if exists v1;
|
||||
drop procedure if exists p1;
|
||||
drop procedure if exists p2;
|
||||
drop function if exists f1;
|
||||
drop function if exists f2;
|
||||
create table t1 (
|
||||
@ -6178,6 +6181,73 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
|
||||
DROP VIEW v1;
|
||||
DROP FUNCTION metered;
|
||||
DROP TABLE t1;
|
||||
SET @p1_p2_cnt= 2;
|
||||
CREATE TABLE t1 (c1 INT);
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
PREPARE s1 FROM 'SELECT c1 FROM v1';
|
||||
EXECUTE s1;
|
||||
c1
|
||||
EXECUTE s1;
|
||||
c1
|
||||
CREATE PROCEDURE p1(IN loops BIGINT(19) UNSIGNED)
|
||||
BEGIN
|
||||
WHILE loops > 0 DO
|
||||
SELECT c1 FROM v1;
|
||||
SET loops = loops - 1;
|
||||
END WHILE;
|
||||
END|
|
||||
CREATE PROCEDURE p2(IN loops BIGINT(19) UNSIGNED)
|
||||
BEGIN
|
||||
WHILE loops > 0 DO
|
||||
SELECT c1 FROM v1;
|
||||
CALL p1(@p1_p2_cnt);
|
||||
SET loops = loops - 1;
|
||||
END WHILE;
|
||||
END|
|
||||
CREATE FUNCTION f1(loops INT UNSIGNED)
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
DECLARE tmp INT;
|
||||
WHILE loops > 0 DO
|
||||
SELECT c1 INTO tmp FROM v1;
|
||||
SET loops = loops - 1;
|
||||
END WHILE;
|
||||
RETURN loops;
|
||||
END|
|
||||
CALL p1(2);
|
||||
c1
|
||||
c1
|
||||
CALL p2(2);
|
||||
c1
|
||||
c1
|
||||
c1
|
||||
c1
|
||||
c1
|
||||
c1
|
||||
SELECT f1(2);
|
||||
f1(2)
|
||||
0
|
||||
Warnings:
|
||||
Warning 1329 No data - zero rows fetched, selected, or processed
|
||||
Warning 1329 No data - zero rows fetched, selected, or processed
|
||||
PREPARE s1 FROM 'SELECT f1(2)';
|
||||
EXECUTE s1;
|
||||
f1(2)
|
||||
0
|
||||
Warnings:
|
||||
Warning 1329 No data - zero rows fetched, selected, or processed
|
||||
Warning 1329 No data - zero rows fetched, selected, or processed
|
||||
EXECUTE s1;
|
||||
f1(2)
|
||||
0
|
||||
Warnings:
|
||||
Warning 1329 No data - zero rows fetched, selected, or processed
|
||||
Warning 1329 No data - zero rows fetched, selected, or processed
|
||||
DROP PROCEDURE p1;
|
||||
DROP PROCEDURE p2;
|
||||
DROP FUNCTION f1;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
drop database if exists mysqltest_db1;
|
||||
create database mysqltest_db1;
|
||||
create procedure mysqltest_db1.sp_bug28551() begin end;
|
||||
|
@ -23,6 +23,9 @@ use test;
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3,t4;
|
||||
drop view if exists v1;
|
||||
drop procedure if exists p1;
|
||||
drop procedure if exists p2;
|
||||
drop function if exists f1;
|
||||
drop function if exists f2;
|
||||
--enable_warnings
|
||||
@ -7136,6 +7139,77 @@ DROP VIEW v1;
|
||||
DROP FUNCTION metered;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#29834: Accessing a view column by name in SP/PS causes a memory leak.
|
||||
#
|
||||
# This is leak test. Run with large number assigned to $execute_cnt,
|
||||
# $p1_cnt, $p2_cnt, @p1_p2_cnt, $f1_normal_cnt or $f1_prep_cnt variables.
|
||||
#
|
||||
|
||||
let $execute_cnt= 2;
|
||||
let $p1_cnt= 2;
|
||||
let $p2_cnt= 2;
|
||||
SET @p1_p2_cnt= 2;
|
||||
let $f1_normal_cnt= 2;
|
||||
let $f1_prep_cnt= 2;
|
||||
|
||||
CREATE TABLE t1 (c1 INT);
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
|
||||
PREPARE s1 FROM 'SELECT c1 FROM v1';
|
||||
while ($execute_cnt)
|
||||
{
|
||||
EXECUTE s1;
|
||||
dec $execute_cnt;
|
||||
}
|
||||
|
||||
DELIMITER |;
|
||||
|
||||
CREATE PROCEDURE p1(IN loops BIGINT(19) UNSIGNED)
|
||||
BEGIN
|
||||
WHILE loops > 0 DO
|
||||
SELECT c1 FROM v1;
|
||||
SET loops = loops - 1;
|
||||
END WHILE;
|
||||
END|
|
||||
|
||||
CREATE PROCEDURE p2(IN loops BIGINT(19) UNSIGNED)
|
||||
BEGIN
|
||||
WHILE loops > 0 DO
|
||||
SELECT c1 FROM v1;
|
||||
CALL p1(@p1_p2_cnt);
|
||||
SET loops = loops - 1;
|
||||
END WHILE;
|
||||
END|
|
||||
|
||||
CREATE FUNCTION f1(loops INT UNSIGNED)
|
||||
RETURNS INT
|
||||
BEGIN
|
||||
DECLARE tmp INT;
|
||||
WHILE loops > 0 DO
|
||||
SELECT c1 INTO tmp FROM v1;
|
||||
SET loops = loops - 1;
|
||||
END WHILE;
|
||||
RETURN loops;
|
||||
END|
|
||||
|
||||
DELIMITER ;|
|
||||
|
||||
eval CALL p1($p1_cnt);
|
||||
eval CALL p2($p2_cnt);
|
||||
|
||||
eval SELECT f1($f1_normal_cnt);
|
||||
|
||||
eval PREPARE s1 FROM 'SELECT f1($f1_prep_cnt)';
|
||||
EXECUTE s1;
|
||||
EXECUTE s1;
|
||||
|
||||
DROP PROCEDURE p1;
|
||||
DROP PROCEDURE p2;
|
||||
DROP FUNCTION f1;
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#28551 "The warning 'No database selected' is reported when calling
|
||||
# stored procedures"
|
||||
|
Reference in New Issue
Block a user