Commit graph

10 commits

Author SHA1 Message Date
Alexander Barkov
dc292bc6eb MDEV-10411 Providing compatibility for basic PL/SQL constructs
Part 11: NULL as a statement
2017-04-05 15:02:41 +04:00
Alexander Barkov
0c9c4b84b7 MDEV-10411 Providing compatibility for basic PL/SQL constructs
Part 10: Default variable value: x INT := 10;
2017-04-05 15:02:41 +04:00
Alexander Barkov
8fdc1f0147 MDEV-10411 Providing compatibility for basic PL/SQL constructs
Part 9: EXCEPTION handlers

- Adding exception handler syntax:
  WHEN exception_name THEN statement
- Adding EXCEPTION section intoi the top BEGIN..END SP block.
  Note, currently EXCEPTION goes in the beginning of the top BEGIN..END
  SP block.

TODO:
- add EXCEPTION section into inner blocks
- move EXCEPTION to the end of the block
2017-04-05 15:02:41 +04:00
Alexander Barkov
a44e90ae05 MDEV-10411 Providing compatibility for basic PL/SQL constructs
Part 7: variable declarations
2017-04-05 15:02:40 +04:00
Alexander Barkov
f71a1f736d MDEV-10411 Providing compatibility for basic PL/SQL constructs
Part 4: AS/IS keyword before a function or a procedure body
2017-04-05 15:02:39 +04:00
Alexander Barkov
892af78085 MDEV-10411 Providing compatibility for basic PL/SQL constructs
Part6: assignment operator

  var:= 10;
2017-04-05 15:02:39 +04:00
Alexander Barkov
7e10e38825 MDEV-10411 Providing compatibility for basic PL/SQL constructs
Part2: Different order of IN, OUT, INOUT keywords in CREATE PROCEDURE params
2017-04-05 15:02:38 +04:00
Alexander Barkov
47a75ed7cb MDEV-10411 Providing compatibility for basic PL/SQL constructs
Changing label syntax from "label:" to "<<label>>".
2017-04-05 15:02:38 +04:00
Alexander Barkov
4de26a8e0e MDEV-10343 Providing compatibility for basic SQL data types
Based on the patch by Dmitry Tolpeko.
2017-04-05 15:02:38 +04:00
Alexander Barkov
9f6aca198c Adding an alternative grammar file sql_yacc_ora.yy for sql_mode=ORACLE
- Adding a new grammar file sql_yacc_ora.yy, which is currently
  almost a full copy of sql_yacc.yy.

  Note, it's now assumed that sql_yacc.yy and sql_yacc_ora.yy
  use the same set of %token directives and exactly the same
  %union directive.
  These declarations should eventually be moved into a shared
  included file, to make sure that sql_yacc.h and sql_yacc_ora.h
  are compatible.

- Removing the "-p MYSQL" flag from cmake/bison.cmake, using
  the %name-prefix directive inside sql_yacc.yy and sql_yacc_ora.yy instead

- Adding other CMake related changes to build sql_yacc_ora.o
  form sql_yacc_ora.yy

- Adding NUMBER(M,N) as a synonym to DECIMAL(M,N) as the first
  Oracle compatibility syntax understood in sql_mode=ORACLE.

- Adding prototypes to functions add_virtual_expression()
  and handle_sql2003_note184_exception(), so they can be used
  in both sql_yacc.yy and sql_yacc_ora.yy.

- Adding a new test suite compat/oracle, with the first test "type_number".
  Use this:
   ./mtr compat/oracle.type_number   # to run a single test
   ./mtr --suite=compat/oracle       # to run the entire new suite

- Adding compat/oracle into the list of default suites,
  so BuildBot can run it automatically on pushes.
2017-04-05 15:01:59 +04:00