PL/SQL parser (MDEV-10142)

[MDEV-10598] sql_mode=ORACLE: Variable declarations can go after cursor declarations Created: 2016-08-19  Updated: 2018-08-31  Resolved: 2017-04-04

Status: Closed
Project: MariaDB Server
Component/s: Parser, Stored routines
Affects Version/s: None
Fix Version/s: 10.3.0

Type: Technical task Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: Compatibility

Issue Links:
Relates
relates to MDEV-12441 Variables declared after cursors with... Closed
Sprint: 10.2.2-3, 10.2.2-1, 10.2.2-2, 10.2.2-4, 10.1.18

 Description   

In MariaDB variable declarations cannot go after cursor declarations.

In Oracle there is no such restriction:

DROP TABLE t1;
DROP FUNCTION f1;
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1);
CREATE FUNCTION f1 RETURN INT
AS
  CURSOR c IS SELECT a FROM t1;
  v_a INT;
BEGIN
  OPEN c;
  FETCH c INTO v_a;
  CLOSE c;
  RETURN v_a;
EXCEPTION
  WHEN OTHERS THEN RETURN -1;
END;
/
SELECT f1() FROM DUAL;

      F1()
----------
	 1



 Comments   
Comment by Alexander Barkov [ 2017-04-04 ]

Pushed to bb-10.2-compatibility

Generated at Thu Feb 08 07:43:26 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.