[MDEV-17660] sql_mode=ORACLE: Some keywords do not work as label names: history, system, versioning, without Created: 2018-11-10  Updated: 2018-11-11  Resolved: 2018-11-10

Status: Closed
Project: MariaDB Server
Component/s: Parser
Affects Version/s: 10.3
Fix Version/s: 10.3.11

Type: Bug Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDEV-12518 Unify sql_yacc.yy and sql_yacc_ora.yy Closed
Relates
relates to MDEV-17661 Add sql_mode specific tokens for the ... Closed
relates to MDEV-17664 Add sql_mode specific tokens for ':' ... Closed

 Description   

These scripts work fine in Oracle:

BEGIN
<<history>>
  NULL;
END;
/

BEGIN
<<system>>
  NULL;
END;
/

BEGIN
<<versioning>>
  NULL;
END;
/

BEGIN
<<without>>
  NULL;
END;
/

If I try equivalent scripts in MariaDB:

SET sql_mode=ORACLE;
DELIMITER /
BEGIN
<<history>>
  NULL;
END;
/
DELIMITER ;

SET sql_mode=ORACLE;
DELIMITER /
BEGIN
<<system>>
  NULL;
END;
/
DELIMITER ;

SET sql_mode=ORACLE;
DELIMITER /
BEGIN
<<versioning>>
  NULL;
END;
/
DELIMITER ;

SET sql_mode=ORACLE;
DELIMITER /
BEGIN
<<without>>
  NULL;
END;
/
DELIMITER ;

they fail, e.g.:

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 'history>>


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