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:
@ -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
|
||||
|
Reference in New Issue
Block a user