mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
MDEV-10580 sql_mode=ORACLE: FOR loop statement
Fixed a crash when trying to use a FOR loop as a compound statement outside of an SP. A bug in 051e415d8a251bd70e9b73619dbcc40f3c65371d.
This commit is contained in:
@ -775,6 +775,18 @@ SELECT @v;
|
|||||||
6
|
6
|
||||||
DROP PROCEDURE p1;
|
DROP PROCEDURE p1;
|
||||||
# Testing the FOR loop statement
|
# Testing the FOR loop statement
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
FOR i IN 1 .. 3
|
||||||
|
LOOP
|
||||||
|
INSERT INTO t1 VALUES (i);
|
||||||
|
END LOOP;
|
||||||
|
/
|
||||||
|
SELECT * FROM t1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
2
|
||||||
|
3
|
||||||
|
DROP TABLE t1;
|
||||||
CREATE FUNCTION f1 (lower_bound INT, upper_bound INT, lim INT) RETURN INT
|
CREATE FUNCTION f1 (lower_bound INT, upper_bound INT, lim INT) RETURN INT
|
||||||
AS
|
AS
|
||||||
total INT := 0;
|
total INT := 0;
|
||||||
|
@ -847,6 +847,18 @@ DROP PROCEDURE p1;
|
|||||||
|
|
||||||
--echo # Testing the FOR loop statement
|
--echo # Testing the FOR loop statement
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
DELIMITER /;
|
||||||
|
FOR i IN 1 .. 3
|
||||||
|
LOOP
|
||||||
|
INSERT INTO t1 VALUES (i);
|
||||||
|
END LOOP;
|
||||||
|
/
|
||||||
|
DELIMITER ;/
|
||||||
|
SELECT * FROM t1;
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
|
||||||
DELIMITER /;
|
DELIMITER /;
|
||||||
--error ER_PARSE_ERROR
|
--error ER_PARSE_ERROR
|
||||||
CREATE FUNCTION f1 (lower_bound INT, upper_bound INT, lim INT) RETURN INT
|
CREATE FUNCTION f1 (lower_bound INT, upper_bound INT, lim INT) RETURN INT
|
||||||
|
@ -3647,6 +3647,8 @@ sp_unlabeled_control:
|
|||||||
| FOR_SYM
|
| FOR_SYM
|
||||||
{
|
{
|
||||||
// See "The FOR LOOP statement" comments in sql_lex.cc
|
// See "The FOR LOOP statement" comments in sql_lex.cc
|
||||||
|
if (Lex->maybe_start_compound_statement(thd))
|
||||||
|
MYSQL_YYABORT;
|
||||||
Lex->sp_block_init(thd); // The outer DECLARE..BEGIN..END block
|
Lex->sp_block_init(thd); // The outer DECLARE..BEGIN..END block
|
||||||
}
|
}
|
||||||
sp_for_loop_index_and_bounds
|
sp_for_loop_index_and_bounds
|
||||||
|
Reference in New Issue
Block a user