Skip to content

Commit 46cf221

Browse files
author
Alexander Barkov
committed
Merge remote-tracking branch 'origin/bb-10.2-ext' into 10.3
2 parents 348eaf4 + ca906fb commit 46cf221

File tree

4 files changed

+34
-3
lines changed

4 files changed

+34
-3
lines changed

mysql-test/suite/compat/oracle/r/sp.result

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,8 @@ CREATE PROCEDURE p1 (rollback OUT INT) AS BEGIN rollback:=10; END;/
273273
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':=10; END' at line 1
274274
CREATE PROCEDURE p1 (shutdown OUT INT) AS BEGIN shutdown:=10; END;/
275275
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':=10; END' at line 1
276+
CREATE PROCEDURE p1 (exception OUT INT) AS BEGIN exception:=10; END;/
277+
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':=10; END' at line 1
276278
# Testing that keyword_directly_not_assignable works in SET statements.
277279
CREATE PROCEDURE p1 (contains OUT INT) AS BEGIN SET contains=10; END;/
278280
DROP PROCEDURE p1/
@@ -300,6 +302,8 @@ CREATE PROCEDURE p1 (begin OUT INT) AS BEGIN SET begin=10; END;/
300302
DROP PROCEDURE p1/
301303
CREATE PROCEDURE p1 (end OUT INT) AS BEGIN SET end=10; END;/
302304
DROP PROCEDURE p1/
305+
CREATE PROCEDURE p1 (exception OUT INT) AS BEGIN SET exception=10; END;/
306+
DROP PROCEDURE p1/
303307
# Testing that keyword_directly_not_assignable works in table/column names
304308
CREATE TABLE contains (contains INT);
305309
DROP TABLE contains;
@@ -327,6 +331,8 @@ CREATE TABLE begin (begin INT);
327331
DROP TABLE begin;
328332
CREATE TABLE end (end INT);
329333
DROP TABLE end;
334+
CREATE TABLE exception (exception INT);
335+
DROP TABLE exception;
330336
# Testing ELSIF
331337
CREATE FUNCTION f1(a INT) RETURN CLOB
332338
AS
@@ -2282,3 +2288,12 @@ Catalog Database Table Table_alias Column Column_alias Type Length Max length Is
22822288
def SQL%ROWCOUNT 8 21 1 N 32897 0 63
22832289
SQL%ROWCOUNT
22842290
0
2291+
#
2292+
# MDEV-13686 EXCEPTION reserved keyword in SQL_MODE=oracle but not in Oracle itself
2293+
#
2294+
CREATE TABLE t1 (c1 int);
2295+
CREATE VIEW v1 AS SELECT c1 exception FROM t1;
2296+
SELECT exception FROM v1;
2297+
exception
2298+
DROP VIEW v1;
2299+
DROP TABLE t1;

mysql-test/suite/compat/oracle/t/sp.test

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,8 @@ CREATE PROCEDURE p1 (commit OUT INT) AS BEGIN commit:=10; END;/
286286
CREATE PROCEDURE p1 (rollback OUT INT) AS BEGIN rollback:=10; END;/
287287
--error ER_PARSE_ERROR
288288
CREATE PROCEDURE p1 (shutdown OUT INT) AS BEGIN shutdown:=10; END;/
289+
--error ER_PARSE_ERROR
290+
CREATE PROCEDURE p1 (exception OUT INT) AS BEGIN exception:=10; END;/
289291
DELIMITER ;/
290292

291293

@@ -317,6 +319,8 @@ CREATE PROCEDURE p1 (begin OUT INT) AS BEGIN SET begin=10; END;/
317319
DROP PROCEDURE p1/
318320
CREATE PROCEDURE p1 (end OUT INT) AS BEGIN SET end=10; END;/
319321
DROP PROCEDURE p1/
322+
CREATE PROCEDURE p1 (exception OUT INT) AS BEGIN SET exception=10; END;/
323+
DROP PROCEDURE p1/
320324
DELIMITER ;/
321325

322326
--echo # Testing that keyword_directly_not_assignable works in table/column names
@@ -346,6 +350,8 @@ CREATE TABLE begin (begin INT);
346350
DROP TABLE begin;
347351
CREATE TABLE end (end INT);
348352
DROP TABLE end;
353+
CREATE TABLE exception (exception INT);
354+
DROP TABLE exception;
349355

350356
--echo # Testing ELSIF
351357
DELIMITER /;
@@ -2131,3 +2137,12 @@ DROP PROCEDURE p1;
21312137
SELECT SQL%ROWCOUNT;
21322138
--enable_ps_protocol
21332139
--disable_metadata
2140+
2141+
--echo #
2142+
--echo # MDEV-13686 EXCEPTION reserved keyword in SQL_MODE=oracle but not in Oracle itself
2143+
--echo #
2144+
CREATE TABLE t1 (c1 int);
2145+
CREATE VIEW v1 AS SELECT c1 exception FROM t1;
2146+
SELECT exception FROM v1;
2147+
DROP VIEW v1;
2148+
DROP TABLE t1;

sql/sql_yacc.yy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1073,7 +1073,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
10731073
%token EXCEPT_SYM /* SQL-2003-R */
10741074
%token EXCLUDE_SYM /* SQL-2011-N */
10751075
%token EXECUTE_SYM /* SQL-2003-R */
1076-
%token EXCEPTION_SYM /* SQL-2003-N */
1076+
%token EXCEPTION_SYM /* SQL-2003-N, Oracle-PLSQL-R */
10771077
%token EXISTS /* SQL-2003-R */
10781078
%token EXIT_SYM
10791079
%token EXPANSION_SYM

sql/sql_yacc_ora.yy

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
482482
%token EXCEPT_SYM /* SQL-2003-R */
483483
%token EXCLUDE_SYM /* SQL-2011-N */
484484
%token EXECUTE_SYM /* SQL-2003-R */
485-
%token EXCEPTION_SYM /* SQL-2003-N */
485+
%token EXCEPTION_SYM /* SQL-2003-N, Oracle-PLSQL-R */
486486
%token EXISTS /* SQL-2003-R */
487487
%token EXIT_SYM
488488
%token EXPANSION_SYM
@@ -14803,7 +14803,7 @@ keyword_sp:
1480314803

1480414804

1480514805
/*
14806-
Keywords that start a statement.
14806+
Keywords that start a statement or an SP block section.
1480714807
Generally allowed as identifiers (e.g. table, column names)
1480814808
- not allowed as SP label names
1480914809
- not allowed as variable names in Oracle-style assignments:
@@ -14813,6 +14813,7 @@ keyword_sp_verb_clause:
1481314813
BEGIN_SYM { /* Compound. Reserved in Oracle */ }
1481414814
| CLOSE_SYM { /* Verb clause. Reserved in Oracle */ }
1481514815
| COMMIT_SYM { /* Verb clause. Reserved in Oracle */ }
14816+
| EXCEPTION_SYM { /* EXCEPTION section in SP blocks */ }
1481614817
| DO_SYM { /* Verb clause */ }
1481714818
| END { /* Compound. Reserved in Oracle */ }
1481814819
| HANDLER_SYM { /* Verb clause */ }

0 commit comments

Comments
 (0)