1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00
This commit is contained in:
Alexey Botchkov
2008-09-30 10:41:30 +05:00
3 changed files with 20 additions and 1 deletions

View File

@ -1628,6 +1628,13 @@ end loop label1;
end loop; end loop;
end| end|
ERROR 42000: End-label label1 without match ERROR 42000: End-label label1 without match
CREATE TABLE t1 (a INT)|
INSERT INTO t1 VALUES (1),(2)|
CREATE PROCEDURE p1(a INT) BEGIN END|
CALL p1((SELECT * FROM t1))|
ERROR 21000: Subquery returns more than 1 row
DROP PROCEDURE IF EXISTS p1|
DROP TABLE t1|
drop procedure if exists p1; drop procedure if exists p1;
create procedure p1() create procedure p1()
begin begin

View File

@ -2362,6 +2362,14 @@ begin
end loop; end loop;
end| end|
CREATE TABLE t1 (a INT)|
INSERT INTO t1 VALUES (1),(2)|
CREATE PROCEDURE p1(a INT) BEGIN END|
--error ER_SUBQUERY_NO_1_ROW
CALL p1((SELECT * FROM t1))|
DROP PROCEDURE IF EXISTS p1|
DROP TABLE t1|
delimiter ;| delimiter ;|
# #

View File

@ -1940,7 +1940,11 @@ sp_head::execute_procedure(THD *thd, List<Item> *args)
we'll leave it here. we'll leave it here.
*/ */
if (!thd->in_sub_stmt) if (!thd->in_sub_stmt)
close_thread_tables(thd); {
thd->lex->unit.cleanup();
close_thread_tables(thd);
thd->rollback_item_tree_changes();
}
DBUG_PRINT("info",(" %.*s: eval args done", DBUG_PRINT("info",(" %.*s: eval args done",
(int) m_name.length, m_name.str)); (int) m_name.length, m_name.str));