summaryrefslogtreecommitdiff
path: root/sql/sql_delete.cc
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2013-10-09 09:40:33 +0400
committerSergey Petrunya <psergey@askmonty.org>2013-10-09 09:40:33 +0400
commit161d68759433b0315a6b95209d3db86be411a686 (patch)
tree8d7123f8b473ae696bf3bf89bf5191afcad986f8 /sql/sql_delete.cc
parent69e6a2bb22434d94d96312ba8a0540195273dfdd (diff)
downloadmariadb-git-161d68759433b0315a6b95209d3db86be411a686.tar.gz
MDEV-3798: EXPLAIN UPDATE/DELETE
- Generate correct contents of `Extra` column for UPDATEs/DELETEs that use quick selects - UPDATEs with used_key_is_modified=true will show "Using buffer"
Diffstat (limited to 'sql/sql_delete.cc')
-rw-r--r--sql/sql_delete.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc
index 19401496a74..15dfe3e6c7c 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -142,14 +142,16 @@ void Update_plan::save_explain_data_intern(Explain_query *query,
explain->using_where= test(select && select->cond);
explain->using_filesort= using_filesort;
+ explain->using_io_buffer= using_io_buffer;
make_possible_keys_line(table, possible_keys, &explain->possible_keys_line);
+ explain->quick_info= NULL;
+
/* Calculate key_len */
if (select && select->quick)
{
- select->quick->add_keys_and_lengths(&explain->key_str,
- &explain->key_len_str);
+ explain->quick_info= select->quick->get_explain(mem_root);
}
else
{
@@ -218,7 +220,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds,
killed_state killed_status= NOT_KILLED;
THD::enum_binlog_query_type query_type= THD::ROW_QUERY_TYPE;
bool with_select= !select_lex->item_list.is_empty();
- Delete_plan query_plan;
+ Delete_plan query_plan(thd->mem_root);
query_plan.index= MAX_KEY;
query_plan.using_filesort= FALSE;
DBUG_ENTER("mysql_delete");