summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/commands/explain.c5
-rw-r--r--src/test/regress/expected/updatable_views.out3
2 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c
index 597e47f53a..69dc8d0508 100644
--- a/src/backend/commands/explain.c
+++ b/src/backend/commands/explain.c
@@ -1965,6 +1965,11 @@ show_plan_tlist(PlanState *planstate, List *ancestors, ExplainState *es)
return;
if (IsA(plan, RecursiveUnion))
return;
+ /* Ditto for RemoteSubplan on top of ModifyTable */
+ if (IsA(plan, RemoteSubplan) && plan->lefttree &&
+ IsA(plan->lefttree, ModifyTable) &&
+ (((ModifyTable *) plan->lefttree)->returningLists != NIL))
+ return;
/*
* Likewise for ForeignScan that executes a direct INSERT/UPDATE/DELETE
diff --git a/src/test/regress/expected/updatable_views.out b/src/test/regress/expected/updatable_views.out
index 1ce6c536c4..5a315715f1 100644
--- a/src/test/regress/expected/updatable_views.out
+++ b/src/test/regress/expected/updatable_views.out
@@ -1132,12 +1132,11 @@ EXPLAIN (verbose, costs off, nodes off) UPDATE rw_view1 SET b = b + 1 RETURNING
QUERY PLAN
-------------------------------------------------------------------
Remote Subquery Scan on any
- Output: base_tbl.a, base_tbl.b
-> Update on public.base_tbl
Output: base_tbl.a, base_tbl.b
-> Seq Scan on public.base_tbl
Output: base_tbl.a, (base_tbl.b + 1), base_tbl.ctid
-(6 rows)
+(5 rows)
UPDATE rw_view1 SET b = b + 1 RETURNING *;
a | b