summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2017-12-22 14:00:10 +0100
committerOleksandr Byelkin <sanja@mariadb.com>2017-12-22 14:00:10 +0100
commit980a5c318803d6aa7355e019869597976dcf19bf (patch)
treef19ff667283da2220bfa67e583768768cb3f7e50 /sql/sql_parse.cc
parent042f763268c0f209e7c12e0a6a72bb5d204dfe29 (diff)
downloadmariadb-git-10.0-bb-MDEV-14572.tar.gz
MDEV-14572: Assertion `! is_set()' failed in Diagnostics_area::set_eof_status upon EXPLAIN UPDATE in PS10.0-bb-MDEV-14572
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)
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index fa95c852f53..f4dd6df2c65 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -3327,6 +3327,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