Details
-
Type:
Bug
-
Status: Closed (View Workflow)
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 10.3
-
Fix Version/s: 10.3.11
-
Component/s: Parser
-
Labels:None
Description
The keyword ELSEIF does not have a special meaning on Oracle. These scripts work fine on Oracle:
DECLARE
|
ELSEIF INT; |
BEGIN
|
ELSEIF:=1;
|
END; |
/
|
BEGIN
|
<<ELSEIF>>
|
NULL; |
END; |
/
|
Equivalent MariaDB scripts produce systax errors:
SET sql_mode=ORACLE; |
DELIMITER /
|
DECLARE
|
ELSEIF INT; |
BEGIN
|
ELSEIF:=1;
|
END; |
/
|
DELIMITER ;
|
ERROR 1064 (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 'ELSEIF INT;...
|
SET sql_mode=ORACLE; |
DELIMITER /
|
BEGIN
|
<<ELSEIF>>
|
NULL; |
END; |
/
|
DELIMITER ;
|
ERROR 1064 (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 'ELSEIF>>
|
Attachments
Issue Links
- blocks
-
MDEV-12518 Unify sql_yacc.yy and sql_yacc_ora.yy
-
- Closed
-