summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <serg@serg.mysql.com>2003-02-22 01:07:17 +0100
committerunknown <serg@serg.mysql.com>2003-02-22 01:07:17 +0100
commiteec10a01cb9b125d1b3b9115fc00c3db131e1557 (patch)
tree6d6c0891884269f6defdd9aa3cd67a0b52cbddc1
parent857e77a16000116dcd2ce295cc181cddc8d30437 (diff)
downloadmariadb-git-eec10a01cb9b125d1b3b9115fc00c3db131e1557.tar.gz
do not allow COLUMN and AFTER/FIRST in
ALTER TABLE ... ADD KEY
-rw-r--r--sql/sql_yacc.yy15
1 files changed, 12 insertions, 3 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 8be025d0423..2f339f30eb4 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -580,7 +580,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
show describe load alter optimize flush
reset purge begin commit rollback slave master_def master_defs
repair restore backup analyze check start
- field_list field_list_item field_spec kill
+ field_list field_list_item field_spec kill column_def key_def
select_item_list select_item values_list no_braces
limit_clause delete_limit_clause fields opt_values values
procedure_list procedure_list2 procedure_item
@@ -909,12 +909,20 @@ field_list:
field_list_item:
+ column_def
+ | key_def
+ ;
+
+column_def:
field_spec check_constraint
| field_spec references
{
Lex->col_list.empty(); /* Alloced by sql_alloc */
}
- | key_type opt_ident '(' key_list ')'
+ ;
+
+key_def:
+ key_type opt_ident '(' key_list ')'
{
LEX *lex=Lex;
lex->key_list.push_back(new Key($1,$2,lex->col_list));
@@ -1205,7 +1213,8 @@ add_column:
ADD opt_column { Lex->change=0; };
alter_list_item:
- add_column field_list_item opt_place { Lex->simple_alter=0; }
+ add_column column_def opt_place { Lex->simple_alter=0; }
+ | ADD key_def { Lex->simple_alter=0; }
| add_column '(' field_list ')' { Lex->simple_alter=0; }
| CHANGE opt_column field_ident
{