summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/t/explain_non_select.test11
-rw-r--r--sql/sql_delete.cc14
2 files changed, 18 insertions, 7 deletions
diff --git a/mysql-test/t/explain_non_select.test b/mysql-test/t/explain_non_select.test
index 523e041f620..7385ef5d420 100644
--- a/mysql-test/t/explain_non_select.test
+++ b/mysql-test/t/explain_non_select.test
@@ -84,3 +84,14 @@ explain update t0, t1 set t1.a=t1.a+1 where t0.a = t1.a;
drop table t0, t1;
+
+--echo #
+--echo # Try DELETE ... RETURNING ...
+--echo #
+create table t0 (a int);
+insert into t0 values (1),(2),(3),(4);
+explain delete from t0 where a=1 returning a;
+explain delete from t0 returning a;
+drop table t0;
+
+
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc
index 92ce69e5686..5655bb12886 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -658,18 +658,18 @@ cleanup:
exit_without_my_ok:
query_plan.save_query_plan_footprint(thd->lex->query_plan_footprint);
- select_send *result;
- if (!(result= new select_send()))
+ select_send *result2;
+ if (!(result2= new select_send()))
return 1; /* purecov: inspected */
List<Item> dummy; /* note: looked in 5.6 and they too use a dummy list like this */
- result->prepare(dummy, &thd->lex->unit);
- thd->send_explain_fields(result);
- int err2= thd->lex->query_plan_footprint->print_explain(result, 0 /* explain flags*/);
+ result2->prepare(dummy, &thd->lex->unit);
+ thd->send_explain_fields(result2);
+ int err2= thd->lex->query_plan_footprint->print_explain(result2, 0 /* explain flags*/);
if (err2)
- result->abort_result_set();
+ result2->abort_result_set();
else
- result->send_eof();
+ result2->send_eof();
delete select;
free_underlaid_joins(thd, select_lex);