mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-20735 Allow non-reserved keywords as user defined type names
This commit is contained in:
@ -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);
|
|||||||
--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'
|
|||||||
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);
|
|||||||
--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 #
|
||||||
|
@ -11648,10 +11648,7 @@ set @x = 2;
|
|||||||
insert into t values (1);
|
insert into t values (1);
|
||||||
set @x = 3;
|
set @x = 3;
|
||||||
END//
|
END//
|
||||||
ERROR 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 'handler for sqlstate '2300' set @x2 = 1;
|
ERROR HY000: Unknown data type: 'handler'
|
||||||
set @x = 1;
|
|
||||||
insert into t values (1);
|
|
||||||
s' at line 3
|
|
||||||
DROP PROCEDURE IF EXISTS handler1;
|
DROP PROCEDURE IF EXISTS handler1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1305 PROCEDURE db_storedproc.handler1 does not exist
|
Note 1305 PROCEDURE db_storedproc.handler1 does not exist
|
||||||
@ -11664,10 +11661,7 @@ set @x = 2;
|
|||||||
insert into t values (1);
|
insert into t values (1);
|
||||||
set @x = 3;
|
set @x = 3;
|
||||||
END//
|
END//
|
||||||
ERROR 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 'handler for sqlstate '2300' set @x2 = 1;
|
ERROR HY000: Unknown data type: 'handler'
|
||||||
set @x = 1;
|
|
||||||
insert into t values (1);
|
|
||||||
s' at line 3
|
|
||||||
DROP PROCEDURE IF EXISTS handler1;
|
DROP PROCEDURE IF EXISTS handler1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1305 PROCEDURE db_storedproc.handler1 does not exist
|
Note 1305 PROCEDURE db_storedproc.handler1 does not exist
|
||||||
@ -11680,10 +11674,7 @@ set @x = 2;
|
|||||||
insert into t values (1);
|
insert into t values (1);
|
||||||
set @x = 3;
|
set @x = 3;
|
||||||
END//
|
END//
|
||||||
ERROR 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 'handler for sqlstate '2300' set @x2 = 1;
|
ERROR HY000: Unknown data type: 'handler'
|
||||||
set @x = 1;
|
|
||||||
insert into t values (1);
|
|
||||||
s' at line 3
|
|
||||||
DROP PROCEDURE IF EXISTS sp1;
|
DROP PROCEDURE IF EXISTS sp1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1305 PROCEDURE db_storedproc.sp1 does not exist
|
Note 1305 PROCEDURE db_storedproc.sp1 does not exist
|
||||||
@ -12934,8 +12925,7 @@ CREATE PROCEDURE sp1( )
|
|||||||
BEGIN
|
BEGIN
|
||||||
declare option handler for sqlstate '02000' set @var2 = 1;
|
declare option handler for sqlstate '02000' set @var2 = 1;
|
||||||
END//
|
END//
|
||||||
ERROR 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 'handler for sqlstate '02000' set @var2 = 1;
|
ERROR HY000: Unknown data type: 'handler'
|
||||||
END' at line 3
|
|
||||||
DROP PROCEDURE IF EXISTS sp1;
|
DROP PROCEDURE IF EXISTS sp1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1305 PROCEDURE db_storedproc.sp1 does not exist
|
Note 1305 PROCEDURE db_storedproc.sp1 does not exist
|
||||||
@ -13015,8 +13005,7 @@ CREATE PROCEDURE sp1( )
|
|||||||
BEGIN
|
BEGIN
|
||||||
declare privileges handler for sqlstate '02000' set @var2 = 1;
|
declare privileges handler for sqlstate '02000' set @var2 = 1;
|
||||||
END//
|
END//
|
||||||
ERROR 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 'handler for sqlstate '02000' set @var2 = 1;
|
ERROR HY000: Unknown data type: 'handler'
|
||||||
END' at line 3
|
|
||||||
DROP PROCEDURE IF EXISTS sp1;
|
DROP PROCEDURE IF EXISTS sp1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1305 PROCEDURE db_storedproc.sp1 does not exist
|
Note 1305 PROCEDURE db_storedproc.sp1 does not exist
|
||||||
@ -13069,8 +13058,7 @@ 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;
|
||||||
END//
|
END//
|
||||||
ERROR 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 'handler for sqlstate '02000' set @var2 = 1;
|
ERROR HY000: Unknown data type: 'handler'
|
||||||
END' at line 3
|
|
||||||
DROP PROCEDURE IF EXISTS sp1;
|
DROP PROCEDURE IF EXISTS sp1;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1305 PROCEDURE db_storedproc.sp1 does not exist
|
Note 1305 PROCEDURE db_storedproc.sp1 does not exist
|
||||||
|
@ -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 ;//
|
|||||||
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 ;//
|
|||||||
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 ;//
|
|||||||
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 ;//
|
|||||||
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 ;//
|
|||||||
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);
|
|||||||
|
|
||||||
%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);
|
|||||||
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:
|
|||||||
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:
|
|||||||
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
|
|||||||
/* 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:
|
|||||||
| 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:
|
|||||||
| 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:
|
|||||||
| 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:
|
|||||||
| 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:
|
|||||||
|
|
||||||
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:
|
|||||||
| 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:
|
|||||||
| 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:
|
|||||||
*/
|
*/
|
||||||
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:
|
|||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
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);
|
|||||||
|
|
||||||
%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);
|
|||||||
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:
|
|||||||
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:
|
|||||||
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
|
|||||||
/* 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:
|
|||||||
| 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:
|
|||||||
| keyword_verb_clause
|
| keyword_verb_clause
|
||||||
| FUNCTION_SYM
|
| FUNCTION_SYM
|
||||||
| WINDOW_SYM
|
| WINDOW_SYM
|
||||||
|
| EXCEPTION_ORACLE_SYM
|
||||||
;
|
;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -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:
|
|||||||
| 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:
|
|||||||
|
|
||||||
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:
|
|||||||
| 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:
|
|||||||
| 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:
|
|||||||
| 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:
|
|||||||
*/
|
*/
|
||||||
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:
|
|||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
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.
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user