← Back to team overview

maria-developers team mailing list archive

Re: MDEV-25075: Ignorable index makes the resulting CREATE TABLE invalid

 

More input:

> --- a/sql/sql_yacc.yy
> +++ b/sql/sql_yacc.yy
> @@ -15975,6 +15976,7 @@ reserved_keyword_udt_not_param_type:
>          | IF_SYM
>          | IGNORE_DOMAIN_IDS_SYM
>          | IGNORE_SYM
> +        | IGNORED_SYM
>          | INDEX_SYM
>          | INFILE
>          | INNER_SYM

Any reason the keyword is added into reserved_keyword_udt_not_param_type list
and not others?

If we just add it here, use of "IGNORED" as identifier/table name/etc will need
quoting, e.g.

  create table (a int ignored)

will produce an error.

I've tried adding it in other rules and it seemed to work:

@@ -15315,6 +15316,7 @@ keyword_table_alias:
         | keyword_verb_clause
         | FUNCTION_SYM
         | EXCEPTION_ORACLE_SYM
+        | IGNORED_SYM  /*psergey*/
         ;
 
 /* Keyword that we allow for identifiers (except SP labels) */
@@ -15331,6 +15333,7 @@ keyword_ident:
         | FUNCTION_SYM
         | WINDOW_SYM
         | EXCEPTION_ORACLE_SYM
+        | IGNORED_SYM  /*psergey*/
         ;
 
 keyword_sysvar_name:
@@ -15345,6 +15348,7 @@ keyword_sysvar_name:
         | FUNCTION_SYM
         | WINDOW_SYM
         | EXCEPTION_ORACLE_SYM
+        | IGNORED_SYM  /*psergey*/
         ;
 
 keyword_set_usual_case:
@@ -15358,6 +15362,7 @@ keyword_set_usual_case:
         | keyword_verb_clause
         | FUNCTION_SYM
         | WINDOW_SYM
+        | IGNORED_SYM  /*psergey*/
         | EXCEPTION_ORACLE_SYM
         ;
 
Please investigate it further, how do we introduce IGNORED in a way that has
minimal impact on what syntax is accepted. 

BR
 Sergei
-- 
Sergei Petrunia, Software Developer
MariaDB Corporation | Skype: sergefp | Blog: http://petrunia.net




References