diff options
author | Vicențiu Ciorbaru <cvicentiu@gmail.com> | 2015-05-18 01:35:47 +0000 |
---|---|---|
committer | Vicențiu Ciorbaru <cvicentiu@gmail.com> | 2015-05-18 15:30:37 +0000 |
commit | 9cc8bd0d84f88968e82f4492f5a7dc3f71dfd03e (patch) | |
tree | 86671a5403e1a456dd7f9513b20d856307864207 /sql/sql_delete.cc | |
parent | 476dfb16034f1af4c99e683fd612eec16ab1661a (diff) | |
download | mariadb-git-bb-10.1-mdev-8063.tar.gz |
MDEV-8063: Unconditional ANALYZE DELETE does not delete rowsbb-10.1-mdev-8063
When detecting a statement that can make use of ha_delete_all_rows(),
we refrained from running the statement when being presented
with the analyze or explain prefix.
Diffstat (limited to 'sql/sql_delete.cc')
-rw-r--r-- | sql/sql_delete.cc | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index 213013b889c..d7c5d94c2cb 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -347,7 +347,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, DBUG_PRINT("debug", ("Trying to use delete_all_rows()")); query_plan.set_delete_all_rows(maybe_deleted); - if (thd->lex->describe || thd->lex->analyze_stmt) + if (thd->lex->describe) goto produce_explain_and_leave; if (!(error=table->file->ha_delete_all_rows())) @@ -359,6 +359,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, query_type= THD::STMT_QUERY_TYPE; error= -1; deleted= maybe_deleted; + query_plan.save_explain_delete_data(thd->mem_root, thd); goto cleanup; } if (error != HA_ERR_WRONG_COMMAND) @@ -699,10 +700,7 @@ cleanup: (thd->lex->ignore && !thd->is_error() && !thd->is_fatal_error)) { if (thd->lex->analyze_stmt) - { - error= 0; goto send_nothing_and_leave; - } if (with_select) result->send_eof(); |