diff options
-rw-r--r-- | src/backend/commands/explain.c | 5 | ||||
-rw-r--r-- | src/test/regress/expected/updatable_views.out | 3 |
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 |