diff options
author | Sergey Petrunya <psergey@askmonty.org> | 2013-10-09 09:40:33 +0400 |
---|---|---|
committer | Sergey Petrunya <psergey@askmonty.org> | 2013-10-09 09:40:33 +0400 |
commit | 161d68759433b0315a6b95209d3db86be411a686 (patch) | |
tree | 8d7123f8b473ae696bf3bf89bf5191afcad986f8 /sql/sql_delete.cc | |
parent | 69e6a2bb22434d94d96312ba8a0540195273dfdd (diff) | |
download | mariadb-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.cc | 8 |
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"); |