diff options
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 42ac943e369..4923be08a49 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -107,6 +107,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize); %token MASTER_SYM %token REPAIR %token RESET_SYM +%token PURGE %token SLAVE %token START_SYM %token STOP_SYM @@ -495,7 +496,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize); query verb_clause create change select drop insert replace insert2 insert_values update delete truncate rename show describe load alter optimize flush - reset begin commit rollback slave master_def master_defs + reset purge begin commit rollback slave master_def master_defs repair restore backup analyze check field_list field_list_item field_spec kill select_item_list select_item values_list no_braces @@ -551,6 +552,7 @@ verb_clause: | lock | kill | optimize + | purge | rename | repair | replace @@ -1031,14 +1033,18 @@ alter: lex->col_list.empty(); lex->drop_list.empty(); lex->alter_list.empty(); + lex->order_list.elements=0; + lex->order_list.first=0; + lex->order_list.next= (byte**) &lex->order_list.first; lex->db=lex->name=0; bzero((char*) &lex->create_info,sizeof(lex->create_info)); lex->create_info.db_type= DB_TYPE_DEFAULT; } - alter_list opt_create_table_options - + alter_list order_clause opt_create_table_options + alter_list: - alter_list_item + /* empty */ + | alter_list_item | alter_list ',' alter_list_item add_column: @@ -1076,7 +1082,7 @@ alter_list_item: { Lex->alter_list.push_back(new Alter_column($3.str,(Item*) 0)); } | RENAME opt_to table_alias table_ident { Lex->db=$4->db.str ; Lex->name= $4->table.str; } - | create_table_option + | opt_create_table_options opt_column: /* empty */ {} @@ -2156,6 +2162,10 @@ show_param: if (!add_table_to_list($3,NULL)) YYABORT; } + | MASTER_SYM LOGS_SYM + { + Lex->sql_command = SQLCOM_SHOW_BINLOGS; + } | keys_or_index FROM table_ident opt_db { Lex->sql_command= SQLCOM_SHOW_KEYS; @@ -2255,6 +2265,13 @@ reset_option: SLAVE { Lex->type|= REFRESH_SLAVE; } | MASTER_SYM { Lex->type|= REFRESH_MASTER; } +purge: + PURGE { Lex->sql_command = SQLCOM_PURGE; Lex->type=0;} + MASTER_SYM LOGS_SYM TO_SYM TEXT_STRING + { + Lex->to_log = $6.str; + } + /* kill threads */ kill: @@ -2848,7 +2865,7 @@ grant_option: | WITH GRANT OPTION { Lex->grant |= GRANT_ACL;} begin: - BEGIN_SYM { Lex->sql_command = SQLCOM_COMMIT;} opt_work + BEGIN_SYM { Lex->sql_command = SQLCOM_BEGIN;} opt_work opt_work: /* empty */ {} |