summaryrefslogtreecommitdiff
path: root/sql/sql_yacc.yy
diff options
context:
space:
mode:
authorRinat Ibragimov <ri@tempesta-tech.com>2020-10-21 23:34:36 +0300
committerMonty <monty@mariadb.org>2020-10-22 00:18:33 +0300
commit709ba7dcae871e365697f67677c908b55ad4a964 (patch)
treedde2860dddbc468d6f1a4484b8e109baff7226a5 /sql/sql_yacc.yy
parentac8d20579512e05001f9bf8193187e47c870d35a (diff)
downloadmariadb-git-709ba7dcae871e365697f67677c908b55ad4a964.tar.gz
MDEV-20945: BACKUP UNLOCK + FTWRL assertion failure
MDEV-20945: BACKUP UNLOCK + FTWRL assertion failure | SIGSEGV in I_P_List from MDL_context::release_lock on INSERT w/ BACKUP LOCK (on optimized builds) | Assertion `ticket->m_duration == MDL_EXPLICIT' failed BACKUP LOCK behavior is modified so it won't be used wrong: - BACKUP LOCK should commit any active transactions. - BACKUP LOCK should not be allowed in stored procedures. - When BACKUP LOCK is active, don't allow any DDL's for that connection. - FTWRL is forbidden on the same connection while BACKUP LOCK is active. Reviewed-by: monty@mariadb.com
Diffstat (limited to 'sql/sql_yacc.yy')
-rw-r--r--sql/sql_yacc.yy4
1 files changed, 4 insertions, 0 deletions
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 83323e3f7e3..8c58d703e41 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -14868,6 +14868,8 @@ backup_statements:
}
| LOCK_SYM
{
+ if (unlikely(Lex->sphead))
+ my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "BACKUP LOCK"));
if (Lex->main_select_push())
MYSQL_YYABORT;
}
@@ -14881,6 +14883,8 @@ backup_statements:
}
| UNLOCK_SYM
{
+ if (unlikely(Lex->sphead))
+ my_yyabort_error((ER_SP_BADSTATEMENT, MYF(0), "BACKUP UNLOCK"));
/* Table list is empty for unlock */
Lex->sql_command= SQLCOM_BACKUP_LOCK;
}