]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix EXPLAIN output for subplans in MERGE.
authorDean Rasheed <dean.a.rasheed@gmail.com>
Sun, 17 Mar 2024 10:17:11 +0000 (10:17 +0000)
committerDean Rasheed <dean.a.rasheed@gmail.com>
Sun, 17 Mar 2024 10:17:11 +0000 (10:17 +0000)
commit33e729c5148c3a697abc552621b34bdc5fd497ed
tree35fc09a09d2813eaa5ae0da29d8e0dbe0715095e
parent20e58105badff383bd43f0b97e532771768f94df
Fix EXPLAIN output for subplans in MERGE.

Given a subplan in a MERGE query, EXPLAIN would sometimes fail to
properly display expressions involving Params referencing variables in
other parts of the plan tree.

This would affect subplans outside the topmost join plan node, for
which expansion of Params would go via the top-level ModifyTable plan
node.  The problem was that "inner_tlist" for the ModifyTable node's
deparse_namespace was set to the join node's targetlist, but
"inner_plan" was set to the ModifyTable node itself, rather than the
join node, leading to incorrect results when descending to the
referenced variable.

Fix and backpatch to v15, where MERGE was introduced.

Discussion: https://postgr.es/m/CAEZATCWAv-sZuH%2BwG5xJ-%2BGt7qGNGX8wUQd3XYydMFDKgRB9nw%40mail.gmail.com
src/backend/utils/adt/ruleutils.c
src/test/regress/expected/merge.out
src/test/regress/sql/merge.sql