diff options
author | Sergey Petrunya <psergey@askmonty.org> | 2013-02-12 14:37:08 +0400 |
---|---|---|
committer | Sergey Petrunya <psergey@askmonty.org> | 2013-02-12 14:37:08 +0400 |
commit | d2995031d9214206689660069024525808c8a683 (patch) | |
tree | 2d08506cf8da9753867bdc81bdc22f03c3106683 /sql/sql_delete.cc | |
parent | b38b44cfe1c62b4c2211aec7c3f1407f14a2aa21 (diff) | |
download | mariadb-git-d2995031d9214206689660069024525808c8a683.tar.gz |
SHOW EXPLAIN for MariaDB
- Support [SHOW] EXPLAIN UPDATE (needs code cleanup).
Diffstat (limited to 'sql/sql_delete.cc')
-rw-r--r-- | sql/sql_delete.cc | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index d7a612f3d56..df659871a64 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -54,9 +54,27 @@ int Delete_plan::print_explain(select_result_sink *output, uint8 explain_flags, bool *printed_anything) { - if (deleting_all_rows || impossible_where) + if (deleting_all_rows) { - const char *msg= deleting_all_rows? "Deleting all rows": "Impossible where"; + const char *msg= "Deleting all rows"; + if (print_explain_message_line(output, explain_flags, 1/*select number*/, + "SIMPLE", msg)) + { + return 1; + } + *printed_anything= true; + return 0; + } + return Update_plan::print_explain(output, explain_flags, printed_anything); +} + + +int Update_plan::print_explain(select_result_sink *output, uint8 explain_flags, + bool *printed_anything) +{ + if (impossible_where) + { + const char *msg= "Impossible where"; if (print_explain_message_line(output, explain_flags, 1/*select number*/, "SIMPLE", msg)) { @@ -404,7 +422,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, query_plan.select= select; query_plan.possible_keys= table->quick_keys; query_plan.table_rows= table->file->stats.records; - thd->lex->delete_plan= &query_plan; + thd->lex->upd_del_plan= &query_plan; /* Ok, we have generated a query plan for the DELETE. @@ -629,7 +647,7 @@ cleanup: /* Special exits */ exit_without_my_ok: - thd->lex->delete_plan= &query_plan; + thd->lex->upd_del_plan= &query_plan; select_send *result; bool printed_anything; |