* dlenev@stripped <dlenev@stripped> [08/02/16 20:42]:
> ChangeSet@stripped, 2008-02-16 11:26:10+03:00, dlenev@stripped +3 -0
> Tentative fix for bug #34614 "Foreign Keys: syntax error with
> double reference".
OK to push.
> QQ: What about UNIQUE/NOT NULL/PRIMARY specifications? According to the
> standard they are column constraints too and therefore can be
> intermixed with referential constraints...
Do nothing. If it is an issue, a separate feature request will be
reported.
> diff -Nrup a/sql/sql_yacc.yy b/sql/sql_yacc.yy
> --- a/sql/sql_yacc.yy 2008-02-14 17:51:48 +03:00
> +++ b/sql/sql_yacc.yy 2008-02-16 11:26:02 +03:00
> @@ -4563,16 +4563,27 @@ field_list_item:
> ;
>
> column_def:
> - field_spec opt_check_constraint
> + field_spec
> + { Lex->ident= $1; }
> + column_constraint_list
> { }
> - | field_spec opt_constraint references
> + ;
> +
> +column_constraint_list:
> + /* empty */ { }
> + | column_constraint_list column_constraint_def
> + ;
> +
> +column_constraint_def:
> + opt_constraint check_constraint
> + | opt_constraint references
I would argue that you only need to change the grammar to support
a list of referential constraint or *one* CHECK constraint.
The patch is OK to push but please consider only making a change
that will be sufficient to meet the acceptance test.
--
-- Konstantin Osipov Software Developer, Moscow, Russia
-- MySQL AB, www.mysql.com The best DATABASE COMPANY in the GALAXY