← Back to team overview

maria-developers team mailing list archive

Re: MDEV-10036 sql_yacc.yy: Split select_part2 to disallow syntactically bad constructs with INTO, PROCEDURE, UNION


Hi Sergei,

On 05/10/2016 11:07 AM, Sergei Golubchik wrote:
Hi, Alexander!

On May 06, Alexander Barkov wrote:
    Hi Sergei,

Please review a patch for MDEV-10036.

This is the next step for:
MDEV-8909 union parser cleanup

Looks ok, I think (it's difficult to review parser patches :).
Just one generic comment:

diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 04c1ba7..b5e4280 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -1793,7 +1793,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
          case_stmt_body opt_bin_mod
          opt_if_exists_table_element opt_if_not_exists_table_element
-        opt_into opt_procedure_clause
+        procedure_clause

your new procedure_clause no longer needs to be of %type <num>.
And I suspect it's true for more than one nonterminal symbol that you've
changed (but I've only noticed procedure_clause).

So, when you're editing the parser try to keep an eye on symbol types
and update them accordingly. Alternatively (it may be easier) forget
about types when editing, but just before committing quickly check
whether types are correct for all modified symbols.

Good catch. I removed procedure_clause from the "num" type list.


Chief Architect MariaDB
and security@xxxxxxxxxxx