summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
authorMichael Widenius <monty@mariadb.org>2019-01-14 15:46:49 +0200
committerMichael Widenius <monty@mariadb.org>2019-01-14 16:18:50 +0200
commitaad0165ceab4fa4e756f5fd473ef9df003a447cb (patch)
tree1ed8c68e116b67a51b810e6c8b0c6b408ff23708 /sql/sql_yacc.yy
parent3975e22d55834930be7b1939ae9a5d416fa0905a (diff)
downloadmariadb-git-aad0165ceab4fa4e756f5fd473ef9df003a447cb.tar.gz
Added support for BACKUP LOCK / BACKUP UNLOCK
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy24
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: