1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

MDEV-10411 Providing compatibility for basic PL/SQL constructs

Changing label syntax from "label:" to "<<label>>".
This commit is contained in:
Alexander Barkov
2016-08-05 09:58:36 +04:00
parent 4de26a8e0e
commit 47a75ed7cb
3 changed files with 154 additions and 7 deletions

View File

@ -0,0 +1,68 @@
SET sql_mode=ORACLE;
CREATE FUNCTION f1 (a INT) RETURNS CLOB
BEGIN
<<label1>>
BEGIN
IF a = 1 THEN
LEAVE label1;
END IF;
RETURN 'IS NOT 1';
END label1;
RETURN 'IS 1';
END;
/
SELECT f1(1);
f1(1)
IS 1
SELECT f1(2);
f1(2)
IS NOT 1
DROP FUNCTION f1;
CREATE FUNCTION f1 (a INT) RETURNS INT
BEGIN
<<label1>>
LOOP
IF a = 2 THEN
LEAVE label1;
END IF;
SET a= a-1;
END LOOP;
RETURN a;
END;
/
SELECT f1(4);
f1(4)
2
DROP FUNCTION f1;
CREATE FUNCTION f1 (a INT) RETURNS INT
BEGIN
<<label1>>
WHILE a>0 DO
IF a = 2 THEN
LEAVE label1;
END IF;
SET a= a-1;
END WHILE label1;
RETURN a;
END;
/
SELECT f1(4);
f1(4)
2
DROP FUNCTION f1;
CREATE FUNCTION f1 (a INT) RETURNS INT
BEGIN
<<label1>>
REPEAT
IF a = 2 THEN
LEAVE label1;
END IF;
SET a= a-1;
UNTIL a=0 END REPEAT;
RETURN a;
END;
/
SELECT f1(4);
f1(4)
2
DROP FUNCTION f1;