summaryrefslogtreecommitdiff
path: root/mysql-test/suite/compat/oracle/r/sp.result
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.org>2016-08-10 15:39:07 +0400
committerAlexander Barkov <bar@mariadb.org>2017-04-05 15:02:40 +0400
commita44e90ae0520f53129e88527a673cbc43aa3b413 (patch)
treef05fa39cb4ef05f57c9944705e912ecb7e6c988e /mysql-test/suite/compat/oracle/r/sp.result
parente399949bfe82676c04757995425dabb13d7658dc (diff)
downloadmariadb-git-a44e90ae0520f53129e88527a673cbc43aa3b413.tar.gz
MDEV-10411 Providing compatibility for basic PL/SQL constructs
Part 7: variable declarations
Diffstat (limited to 'mysql-test/suite/compat/oracle/r/sp.result')
-rw-r--r--mysql-test/suite/compat/oracle/r/sp.result98
1 files changed, 98 insertions, 0 deletions
diff --git a/mysql-test/suite/compat/oracle/r/sp.result b/mysql-test/suite/compat/oracle/r/sp.result
index aa52cda9937..53ca49c8ef1 100644
--- a/mysql-test/suite/compat/oracle/r/sp.result
+++ b/mysql-test/suite/compat/oracle/r/sp.result
@@ -252,3 +252,101 @@ CREATE TABLE begin (begin INT);
DROP TABLE begin;
CREATE TABLE end (end INT);
DROP TABLE end;
+# Testing top-level declarations
+CREATE PROCEDURE p1 (p1 OUT VARCHAR2(10))
+AS
+p2 VARCHAR(10);
+BEGIN
+p2:='p1new';
+p1:=p2;
+END;
+/
+SET @p1='p1';
+CALL p1(@p1);
+SELECT @p1;
+@p1
+p1new
+DROP PROCEDURE p1;
+CREATE FUNCTION f1 (p1 VARCHAR2(10)) RETURNS VARCHAR(20)
+AS
+p2 VARCHAR(10);
+BEGIN
+p2:='new';
+RETURN CONCAT(p1, p2);
+END;
+/
+SET @p1='p1';
+SELECT f1(@p1);
+f1(@p1)
+p1new
+DROP FUNCTION f1;
+# Testing non-top declarations
+CREATE PROCEDURE p1 (p1 OUT VARCHAR2(10))
+AS
+BEGIN
+DECLARE
+p2 VARCHAR(10);
+BEGIN
+p2:='p1new';
+p1:=p2;
+END;
+DECLARE
+t1 VARCHAR(10);
+t2 VARCHAR(10);
+BEGIN
+END;
+END;
+/
+SET @p1='p1';
+CALL p1(@p1);
+SELECT @p1;
+@p1
+p1new
+DROP PROCEDURE p1;
+CREATE FUNCTION f1 (p1 VARCHAR2(10)) RETURNS VARCHAR(20)
+AS
+BEGIN
+DECLARE
+p2 VARCHAR(10);
+BEGIN
+p2:='new';
+RETURN CONCAT(p1, p2);
+END;
+DECLARE
+t1 VARCHAR(10);
+t2 VARCHAR(10);
+BEGIN
+END;
+END;
+/
+SET @p1='p1';
+SELECT f1(@p1);
+f1(@p1)
+p1new
+DROP FUNCTION f1;
+# Testing BEGIN NOT ATOMIC with no declarations
+BEGIN NOT ATOMIC
+SELECT 1 AS a;
+END
+/
+a
+1
+# Testing BEGIN NOT ATOMIC with declarations
+# DECLARE starts a new block and thus must be followed by BEGIN .. END
+BEGIN NOT ATOMIC
+DECLARE
+i INT DEFAULT 5;
+x INT DEFAULT 10;
+BEGIN
+<<label>>
+WHILE i > 3 DO
+i:= i - 1;
+SELECT i;
+END WHILE label;
+END;
+END
+/
+i
+4
+i
+3