Commit c2d8db66 authored by Alexander Barkov's avatar Alexander Barkov

MDEV-20735 Allow non-reserved keywords as user defined type names

parent d168601e
...@@ -1809,5 +1809,36 @@ ERROR HY000: Unknown data type: 'DUAL' ...@@ -1809,5 +1809,36 @@ ERROR HY000: Unknown data type: 'DUAL'
SELECT CAST(1 AS DUAL); SELECT CAST(1 AS DUAL);
ERROR HY000: Unknown data type: 'DUAL' ERROR HY000: Unknown data type: 'DUAL'
# #
# MDEV-20735 Allow non-reserved keywords as user defined type names
#
CREATE TABLE t1 (a ASCII);
ERROR HY000: Unknown data type: 'ASCII'
SELECT CAST(1 AS ASCII);
ERROR HY000: Unknown data type: 'ASCII'
CREATE TABLE t1 (a LANGUAGE);
ERROR HY000: Unknown data type: 'LANGUAGE'
SELECT CAST(1 AS LANGUAGE);
ERROR HY000: Unknown data type: 'LANGUAGE'
CREATE TABLE t1 (a CLOSE);
ERROR HY000: Unknown data type: 'CLOSE'
SELECT CAST(1 AS CLOSE);
ERROR HY000: Unknown data type: 'CLOSE'
CREATE TABLE t1 (a NAMES);
ERROR HY000: Unknown data type: 'NAMES'
SELECT CAST(1 AS NAMES);
ERROR HY000: Unknown data type: 'NAMES'
CREATE TABLE t1 (a END);
ERROR HY000: Unknown data type: 'END'
SELECT CAST(1 AS END);
ERROR HY000: Unknown data type: 'END'
CREATE TABLE t1 (a GLOBAL);
ERROR HY000: Unknown data type: 'GLOBAL'
SELECT CAST(1 AS GLOBAL);
ERROR HY000: Unknown data type: 'GLOBAL'
CREATE TABLE t1 (a ACTION);
ERROR HY000: Unknown data type: 'ACTION'
SELECT CAST(1 AS ACTION);
ERROR HY000: Unknown data type: 'ACTION'
#
# End of 10.5 tests # End of 10.5 tests
# #
...@@ -1581,6 +1581,46 @@ CREATE TABLE t1 (a DUAL); ...@@ -1581,6 +1581,46 @@ CREATE TABLE t1 (a DUAL);
--error ER_UNKNOWN_DATA_TYPE --error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS DUAL); SELECT CAST(1 AS DUAL);
--echo #
--echo # MDEV-20735 Allow non-reserved keywords as user defined type names
--echo #
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a ASCII);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS ASCII);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a LANGUAGE);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS LANGUAGE);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a CLOSE);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS CLOSE);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a NAMES);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS NAMES);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a END);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS END);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a GLOBAL);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS GLOBAL);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a ACTION);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS ACTION);
--echo # --echo #
--echo # End of 10.5 tests --echo # End of 10.5 tests
--echo # --echo #
...@@ -620,5 +620,40 @@ ERROR HY000: Unknown data type: 'DUAL' ...@@ -620,5 +620,40 @@ ERROR HY000: Unknown data type: 'DUAL'
SELECT CAST(1 AS DUAL); SELECT CAST(1 AS DUAL);
ERROR HY000: Unknown data type: 'DUAL' ERROR HY000: Unknown data type: 'DUAL'
# #
# MDEV-20735 Allow non-reserved keywords as user defined type names
#
CREATE TABLE t1 (a ASCII);
ERROR HY000: Unknown data type: 'ASCII'
SELECT CAST(1 AS ASCII);
ERROR HY000: Unknown data type: 'ASCII'
CREATE TABLE t1 (a LANGUAGE);
ERROR HY000: Unknown data type: 'LANGUAGE'
SELECT CAST(1 AS LANGUAGE);
ERROR HY000: Unknown data type: 'LANGUAGE'
CREATE TABLE t1 (a CLOSE);
ERROR HY000: Unknown data type: 'CLOSE'
SELECT CAST(1 AS CLOSE);
ERROR HY000: Unknown data type: 'CLOSE'
CREATE TABLE t1 (a NAMES);
ERROR HY000: Unknown data type: 'NAMES'
SELECT CAST(1 AS NAMES);
ERROR HY000: Unknown data type: 'NAMES'
CREATE TABLE t1 (a END);
ERROR HY000: Unknown data type: 'END'
SELECT CAST(1 AS END);
ERROR HY000: Unknown data type: 'END'
CREATE TABLE t1 (a GLOBAL);
ERROR HY000: Unknown data type: 'GLOBAL'
SELECT CAST(1 AS GLOBAL);
ERROR HY000: Unknown data type: 'GLOBAL'
CREATE TABLE t1 (a ACTION);
ERROR HY000: Unknown data type: 'ACTION'
SELECT CAST(1 AS ACTION);
ERROR HY000: Unknown data type: 'ACTION'
CREATE TABLE t1 (a BEGIN);
ERROR HY000: Unknown data type: 'BEGIN'
SELECT CAST(1 AS BEGIN);
ERROR HY000: Unknown data type: 'BEGIN'
#
# End of 10.5 tests # End of 10.5 tests
# #
...@@ -427,6 +427,51 @@ CREATE TABLE t1 (a DUAL); ...@@ -427,6 +427,51 @@ CREATE TABLE t1 (a DUAL);
--error ER_UNKNOWN_DATA_TYPE --error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS DUAL); SELECT CAST(1 AS DUAL);
--echo #
--echo # MDEV-20735 Allow non-reserved keywords as user defined type names
--echo #
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a ASCII);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS ASCII);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a LANGUAGE);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS LANGUAGE);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a CLOSE);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS CLOSE);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a NAMES);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS NAMES);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a END);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS END);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a GLOBAL);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS GLOBAL);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a ACTION);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS ACTION);
--error ER_UNKNOWN_DATA_TYPE
CREATE TABLE t1 (a BEGIN);
--error ER_UNKNOWN_DATA_TYPE
SELECT CAST(1 AS BEGIN);
--echo # --echo #
--echo # End of 10.5 tests --echo # End of 10.5 tests
--echo # --echo #
...@@ -13752,7 +13752,7 @@ delimiter ;// ...@@ -13752,7 +13752,7 @@ delimiter ;//
DROP PROCEDURE IF EXISTS handler1; DROP PROCEDURE IF EXISTS handler1;
delimiter //; delimiter //;
--error ER_PARSE_ERROR --error ER_UNKNOWN_DATA_TYPE
CREATE PROCEDURE handler1() CREATE PROCEDURE handler1()
BEGIN BEGIN
declare continueinv handler for sqlstate '2300' set @x2 = 1; declare continueinv handler for sqlstate '2300' set @x2 = 1;
...@@ -13776,7 +13776,7 @@ delimiter ;// ...@@ -13776,7 +13776,7 @@ delimiter ;//
DROP PROCEDURE IF EXISTS handler1; DROP PROCEDURE IF EXISTS handler1;
delimiter //; delimiter //;
--error ER_PARSE_ERROR --error ER_UNKNOWN_DATA_TYPE
CREATE PROCEDURE handler1() CREATE PROCEDURE handler1()
BEGIN BEGIN
declare undoinv handler for sqlstate '2300' set @x2 = 1; declare undoinv handler for sqlstate '2300' set @x2 = 1;
...@@ -13800,7 +13800,7 @@ delimiter ;// ...@@ -13800,7 +13800,7 @@ delimiter ;//
DROP PROCEDURE IF EXISTS handler1; DROP PROCEDURE IF EXISTS handler1;
delimiter //; delimiter //;
--error ER_PARSE_ERROR --error ER_UNKNOWN_DATA_TYPE
CREATE PROCEDURE handler1 () CREATE PROCEDURE handler1 ()
BEGIN BEGIN
declare exitinv handler for sqlstate '2300' set @x2 = 1; declare exitinv handler for sqlstate '2300' set @x2 = 1;
...@@ -15210,7 +15210,7 @@ delimiter ;// ...@@ -15210,7 +15210,7 @@ delimiter ;//
DROP PROCEDURE IF EXISTS sp1; DROP PROCEDURE IF EXISTS sp1;
delimiter //; delimiter //;
--error ER_PARSE_ERROR --error ER_UNKNOWN_DATA_TYPE
CREATE PROCEDURE sp1( ) CREATE PROCEDURE sp1( )
BEGIN BEGIN
declare option handler for sqlstate '02000' set @var2 = 1; declare option handler for sqlstate '02000' set @var2 = 1;
...@@ -15300,7 +15300,7 @@ delimiter ;// ...@@ -15300,7 +15300,7 @@ delimiter ;//
DROP PROCEDURE IF EXISTS sp1; DROP PROCEDURE IF EXISTS sp1;
delimiter //; delimiter //;
--error ER_PARSE_ERROR --error ER_UNKNOWN_DATA_TYPE
CREATE PROCEDURE sp1( ) CREATE PROCEDURE sp1( )
BEGIN BEGIN
declare privileges handler for sqlstate '02000' set @var2 = 1; declare privileges handler for sqlstate '02000' set @var2 = 1;
...@@ -15360,7 +15360,7 @@ delimiter ;// ...@@ -15360,7 +15360,7 @@ delimiter ;//
DROP PROCEDURE IF EXISTS sp1; DROP PROCEDURE IF EXISTS sp1;
delimiter //; delimiter //;
--error ER_PARSE_ERROR --error ER_UNKNOWN_DATA_TYPE
CREATE PROCEDURE sp1( ) CREATE PROCEDURE sp1( )
BEGIN BEGIN
declare read_only handler for sqlstate '02000' set @var2 = 1; declare read_only handler for sqlstate '02000' set @var2 = 1;
......
...@@ -1797,6 +1797,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize); ...@@ -1797,6 +1797,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
%type <kwd> %type <kwd>
keyword_data_type keyword_data_type
keyword_cast_type
keyword_ident keyword_ident
keyword_label keyword_label
keyword_set_special_case keyword_set_special_case
...@@ -1812,6 +1813,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize); ...@@ -1812,6 +1813,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
keyword_verb_clause keyword_verb_clause
charset charset
reserved_keyword_udt reserved_keyword_udt
non_reserved_keyword_udt
%type <table> %type <table>
table_ident table_ident_nodb references xid table_ident table_ident_nodb references xid
...@@ -6864,6 +6866,11 @@ field_type: ...@@ -6864,6 +6866,11 @@ field_type:
if (Lex->set_field_type_udt(&$$, $1, $2)) if (Lex->set_field_type_udt(&$$, $1, $2))
MYSQL_YYABORT; MYSQL_YYABORT;
} }
| non_reserved_keyword_udt float_options srid_option
{
if (Lex->set_field_type_udt(&$$, $1, $2))
MYSQL_YYABORT;
}
; ;
field_type_numeric: field_type_numeric:
...@@ -11915,6 +11922,11 @@ cast_type: ...@@ -11915,6 +11922,11 @@ cast_type:
if (Lex->set_cast_type_udt(&$$, $1)) if (Lex->set_cast_type_udt(&$$, $1))
MYSQL_YYABORT; MYSQL_YYABORT;
} }
| non_reserved_keyword_udt
{
if (Lex->set_cast_type_udt(&$$, $1))
MYSQL_YYABORT;
}
; ;
cast_type_numeric: cast_type_numeric:
...@@ -15798,6 +15810,7 @@ user: user_maybe_role ...@@ -15798,6 +15810,7 @@ user: user_maybe_role
/* Keywords which we allow as table aliases. */ /* Keywords which we allow as table aliases. */
keyword_table_alias: keyword_table_alias:
keyword_data_type keyword_data_type
| keyword_cast_type
| keyword_set_special_case | keyword_set_special_case
| keyword_sp_block_section | keyword_sp_block_section
| keyword_sp_head | keyword_sp_head
...@@ -15805,11 +15818,13 @@ keyword_table_alias: ...@@ -15805,11 +15818,13 @@ keyword_table_alias:
| keyword_sp_var_not_label | keyword_sp_var_not_label
| keyword_sysvar_type | keyword_sysvar_type
| keyword_verb_clause | keyword_verb_clause
| EXCEPTION_ORACLE_SYM
; ;
/* Keyword that we allow for identifiers (except SP labels) */ /* Keyword that we allow for identifiers (except SP labels) */
keyword_ident: keyword_ident:
keyword_data_type keyword_data_type
| keyword_cast_type
| keyword_set_special_case | keyword_set_special_case
| keyword_sp_block_section | keyword_sp_block_section
| keyword_sp_head | keyword_sp_head
...@@ -15818,6 +15833,7 @@ keyword_ident: ...@@ -15818,6 +15833,7 @@ keyword_ident:
| keyword_sysvar_type | keyword_sysvar_type
| keyword_verb_clause | keyword_verb_clause
| WINDOW_SYM | WINDOW_SYM
| EXCEPTION_ORACLE_SYM
; ;
/* /*
...@@ -15829,10 +15845,12 @@ keyword_label: ...@@ -15829,10 +15845,12 @@ keyword_label:
| keyword_set_special_case | keyword_set_special_case
| keyword_sp_var_and_label | keyword_sp_var_and_label
| keyword_sysvar_type | keyword_sysvar_type
| EXCEPTION_ORACLE_SYM
; ;
keyword_sysvar_name: keyword_sysvar_name:
keyword_data_type keyword_data_type
| keyword_cast_type
| keyword_set_special_case | keyword_set_special_case
| keyword_sp_block_section | keyword_sp_block_section
| keyword_sp_head | keyword_sp_head
...@@ -15840,10 +15858,12 @@ keyword_sysvar_name: ...@@ -15840,10 +15858,12 @@ keyword_sysvar_name:
| keyword_sp_var_not_label | keyword_sp_var_not_label
| keyword_verb_clause | keyword_verb_clause
| WINDOW_SYM | WINDOW_SYM
| EXCEPTION_ORACLE_SYM
; ;
keyword_sp_decl: keyword_sp_decl:
keyword_data_type keyword_data_type
| keyword_cast_type
| keyword_set_special_case | keyword_set_special_case
| keyword_sp_block_section | keyword_sp_block_section
| keyword_sp_head | keyword_sp_head
...@@ -15856,6 +15876,7 @@ keyword_sp_decl: ...@@ -15856,6 +15876,7 @@ keyword_sp_decl:
keyword_set_usual_case: keyword_set_usual_case:
keyword_data_type keyword_data_type
| keyword_cast_type
| keyword_sp_block_section | keyword_sp_block_section
| keyword_sp_head | keyword_sp_head
| keyword_sp_var_and_label | keyword_sp_var_and_label
...@@ -15863,6 +15884,17 @@ keyword_set_usual_case: ...@@ -15863,6 +15884,17 @@ keyword_set_usual_case:
| keyword_sysvar_type | keyword_sysvar_type
| keyword_verb_clause | keyword_verb_clause
| WINDOW_SYM | WINDOW_SYM
| EXCEPTION_ORACLE_SYM
;
non_reserved_keyword_udt:
keyword_sp_var_not_label
| keyword_sp_head
| keyword_verb_clause
| keyword_set_special_case
| keyword_sp_block_section
| keyword_sysvar_type
| keyword_sp_var_and_label
; ;
/* /*
...@@ -15914,7 +15946,6 @@ keyword_sp_var_not_label: ...@@ -15914,7 +15946,6 @@ keyword_sp_var_not_label:
| RESTORE_SYM | RESTORE_SYM
| SECURITY_SYM | SECURITY_SYM
| SERVER_SYM | SERVER_SYM
| SIGNED_SYM
| SOCKET_SYM | SOCKET_SYM
| SLAVE | SLAVE
| SLAVES | SLAVES
...@@ -16009,7 +16040,6 @@ keyword_set_special_case: ...@@ -16009,7 +16040,6 @@ keyword_set_special_case:
*/ */
keyword_sp_block_section: keyword_sp_block_section:
BEGIN_MARIADB_SYM BEGIN_MARIADB_SYM
| EXCEPTION_ORACLE_SYM
| END | END
; ;
...@@ -16054,6 +16084,11 @@ keyword_data_type: ...@@ -16054,6 +16084,11 @@ keyword_data_type:
; ;
keyword_cast_type:
SIGNED_SYM
;
/* /*
These keywords are fine for both SP variable names and SP labels. These keywords are fine for both SP variable names and SP labels.
*/ */
......
...@@ -1266,6 +1266,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize); ...@@ -1266,6 +1266,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
%type <kwd> %type <kwd>
keyword_data_type keyword_data_type
keyword_cast_type
keyword_ident keyword_ident
keyword_label keyword_label
keyword_set_special_case keyword_set_special_case
...@@ -1282,6 +1283,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize); ...@@ -1282,6 +1283,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize);
keyword_directly_assignable keyword_directly_assignable
charset charset
reserved_keyword_udt reserved_keyword_udt
non_reserved_keyword_udt
%type <table> %type <table>
table_ident table_ident_nodb references xid table_ident table_ident_nodb references xid
...@@ -6863,6 +6865,11 @@ field_type: ...@@ -6863,6 +6865,11 @@ field_type:
if (Lex->set_field_type_udt(&$$, $1, $2)) if (Lex->set_field_type_udt(&$$, $1, $2))
MYSQL_YYABORT; MYSQL_YYABORT;
} }
| non_reserved_keyword_udt float_options srid_option
{
if (Lex->set_field_type_udt(&$$, $1, $2))
MYSQL_YYABORT;
}
; ;
...@@ -12014,6 +12021,11 @@ cast_type: ...@@ -12014,6 +12021,11 @@ cast_type:
if (Lex->set_cast_type_udt(&$$, $1)) if (Lex->set_cast_type_udt(&$$, $1))
MYSQL_YYABORT; MYSQL_YYABORT;
} }
| non_reserved_keyword_udt
{
if (Lex->set_cast_type_udt(&$$, $1))
MYSQL_YYABORT;
}
; ;
cast_type_numeric: cast_type_numeric:
...@@ -15950,6 +15962,7 @@ user: user_maybe_role ...@@ -15950,6 +15962,7 @@ user: user_maybe_role
/* Keywords which we allow as table aliases. */ /* Keywords which we allow as table aliases. */
keyword_table_alias: keyword_table_alias:
keyword_data_type keyword_data_type
| keyword_cast_type
| keyword_set_special_case | keyword_set_special_case
| keyword_sp_block_section | keyword_sp_block_section
| keyword_sp_head | keyword_sp_head
...@@ -15958,11 +15971,13 @@ keyword_table_alias: ...@@ -15958,11 +15971,13 @@ keyword_table_alias:
| keyword_sysvar_type | keyword_sysvar_type
| keyword_verb_clause | keyword_verb_clause
| FUNCTION_SYM | FUNCTION_SYM
| EXCEPTION_ORACLE_SYM
; ;
/* Keyword that we allow for identifiers (except SP labels) */ /* Keyword that we allow for identifiers (except SP labels) */
keyword_ident: keyword_ident:
keyword_data_type keyword_data_type
| keyword_cast_type
| keyword_set_special_case | keyword_set_special_case
| keyword_sp_block_section | keyword_sp_block_section
| keyword_sp_head | keyword_sp_head
...@@ -15972,6 +15987,7 @@ keyword_ident: ...@@ -15972,6 +15987,7 @@ keyword_ident:
| keyword_verb_clause | keyword_verb_clause
| FUNCTION_SYM | FUNCTION_SYM
| WINDOW_SYM | WINDOW_SYM
| EXCEPTION_ORACLE_SYM
; ;
/* /*
...@@ -15985,10 +16001,12 @@ keyword_label: ...@@ -15985,10 +16001,12 @@ keyword_label:
| keyword_sysvar_type | keyword_sysvar_type
| FUNCTION_SYM | FUNCTION_SYM
| COMPRESSED_SYM | COMPRESSED_SYM
| EXCEPTION_ORACLE_SYM
; ;
keyword_sysvar_name: keyword_sysvar_name:
keyword_data_type keyword_data_type
| keyword_cast_type
| keyword_set_special_case | keyword_set_special_case
| keyword_sp_block_section | keyword_sp_block_section
| keyword_sp_head | keyword_sp_head
...@@ -15997,6 +16015,7 @@ keyword_sysvar_name: ...@@ -15997,6 +16015,7 @@ keyword_sysvar_name:
| keyword_verb_clause | keyword_verb_clause
| FUNCTION_SYM | FUNCTION_SYM
| WINDOW_SYM | WINDOW_SYM
| EXCEPTION_ORACLE_SYM
; ;
keyword_sp_decl: keyword_sp_decl:
...@@ -16011,6 +16030,7 @@ keyword_sp_decl: ...@@ -16011,6 +16030,7 @@ keyword_sp_decl:
keyword_set_usual_case: keyword_set_usual_case:
keyword_data_type keyword_data_type
| keyword_cast_type
| keyword_sp_block_section | keyword_sp_block_section
| keyword_sp_head | keyword_sp_head
| keyword_sp_var_and_label | keyword_sp_var_and_label
...@@ -16019,10 +16039,12 @@ keyword_set_usual_case: ...@@ -16019,10 +16039,12 @@ keyword_set_usual_case:
| keyword_verb_clause | keyword_verb_clause
| FUNCTION_SYM | FUNCTION_SYM
| WINDOW_SYM | WINDOW_SYM
| EXCEPTION_ORACLE_SYM
; ;
keyword_directly_assignable: keyword_directly_assignable:
keyword_data_type keyword_data_type
| keyword_cast_type
| keyword_set_special_case | keyword_set_special_case
| keyword_sp_var_and_label | keyword_sp_var_and_label
| keyword_sp_var_not_label | keyword_sp_var_not_label
...@@ -16031,6 +16053,16 @@ keyword_directly_assignable: ...@@ -16031,6 +16053,16 @@ keyword_directly_assignable:
| WINDOW_SYM | WINDOW_SYM
; ;
non_reserved_keyword_udt:
keyword_sp_var_not_label
| keyword_sp_head
| keyword_verb_clause
| keyword_set_special_case
| keyword_sp_block_section
| keyword_sysvar_type
| keyword_sp_var_and_label
;
/* /*
Keywords that we allow in Oracle-style direct assignments: Keywords that we allow in Oracle-style direct assignments:
xxx := 10; xxx := 10;
...@@ -16080,7 +16112,6 @@ keyword_sp_var_not_label: ...@@ -16080,7 +16112,6 @@ keyword_sp_var_not_label:
| RESTORE_SYM | RESTORE_SYM
| SECURITY_SYM | SECURITY_SYM
| SERVER_SYM | SERVER_SYM
| SIGNED_SYM
| SOCKET_SYM | SOCKET_SYM
| SLAVE | SLAVE
| SLAVES | SLAVES
...@@ -16175,7 +16206,6 @@ keyword_set_special_case: ...@@ -16175,7 +16206,6 @@ keyword_set_special_case:
*/ */
keyword_sp_block_section: keyword_sp_block_section:
BEGIN_ORACLE_SYM BEGIN_ORACLE_SYM
| EXCEPTION_ORACLE_SYM
| END | END
; ;
...@@ -16220,6 +16250,11 @@ keyword_data_type: ...@@ -16220,6 +16250,11 @@ keyword_data_type:
; ;
keyword_cast_type:
SIGNED_SYM
;
/* /*
These keywords are fine for both SP variable names and SP labels. These keywords are fine for both SP variable names and SP labels.
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment