diff options
author | Michael Widenius <monty@mariadb.org> | 2019-01-14 15:46:49 +0200 |
---|---|---|
committer | Michael Widenius <monty@mariadb.org> | 2019-01-14 16:18:50 +0200 |
commit | aad0165ceab4fa4e756f5fd473ef9df003a447cb (patch) | |
tree | 1ed8c68e116b67a51b810e6c8b0c6b408ff23708 /sql/sql_yacc.yy | |
parent | 3975e22d55834930be7b1939ae9a5d416fa0905a (diff) | |
download | mariadb-git-aad0165ceab4fa4e756f5fd473ef9df003a447cb.tar.gz |
Added support for BACKUP LOCK / BACKUP UNLOCK
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r-- | sql/sql_yacc.yy | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index f628ef098a1..8f62dca4aec 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1999,7 +1999,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, size_t *yystacksize); %type <select_order> opt_order_clause order_clause order_list %type <NONE> - analyze_stmt_command backup + analyze_stmt_command backup backup_statements query verb_clause create change select select_into do drop insert replace insert2 insert_values update delete truncate rename compound_statement @@ -14510,18 +14510,34 @@ opt_table_list: ; backup: - BACKUP_SYM STAGE_SYM ident + BACKUP_SYM backup_statements {} + ; + +backup_statements: + STAGE_SYM ident { int type; if (unlikely(Lex->sphead)) my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "BACKUP STAGE")); - if ((type= find_type($3.str, &backup_stage_names, + if ((type= find_type($2.str, &backup_stage_names, FIND_TYPE_NO_PREFIX)) <= 0) - my_yyabort_error((ER_BACKUP_UNKNOWN_STAGE, MYF(0), $3.str)); + my_yyabort_error((ER_BACKUP_UNKNOWN_STAGE, MYF(0), $2.str)); Lex->sql_command= SQLCOM_BACKUP; Lex->backup_stage= (backup_stages) (type-1); break; } + | LOCK_SYM table_ident + { + if (unlikely(!Select->add_table_to_list(thd, $2, NULL, 0, + TL_READ, MDL_SHARED_HIGH_PRIO))) + MYSQL_YYABORT; + Lex->sql_command= SQLCOM_BACKUP_LOCK; + } + | UNLOCK_SYM + { + /* Table list is empty for unlock */ + Lex->sql_command= SQLCOM_BACKUP_LOCK; + } ; opt_delete_gtid_domain: |