1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

MDEV-14572: Assertion `! is_set()' failed in Diagnostics_area::set_eof_status upon EXPLAIN UPDATE in PS

Restore EXPAIN flag in SELECT_LEX before execution multi-update by flag in LEX
(the same but in other way made before INSERT/DELETE/SELECT)

Without it, mysql_update() didn't know that there will be EXPLAIN result set and was sending OK at the end of the update, which conflicted with the EOF sent later by EXPLAIN.
This commit is contained in:
Oleksandr Byelkin
2019-04-30 11:35:52 +02:00
parent a8793a2c02
commit 5b035c8456
3 changed files with 43 additions and 0 deletions

View File

@ -3800,6 +3800,16 @@ end_with_restore_list:
else
res= 0;
/*
We can not use mysql_explain_union() because of parameters of
mysql_select in mysql_multi_update so just set the option if needed
*/
if (thd->lex->describe)
{
select_lex->set_explain_type(FALSE);
select_lex->options|= SELECT_DESCRIBE;
}
res= mysql_multi_update_prepare(thd);
#ifdef HAVE_REPLICATION