Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.3(EOL)
-
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