diff options
| author | David Rowley <drowley@postgresql.org> | 2025-11-05 11:48:09 +1300 |
|---|---|---|
| committer | David Rowley <drowley@postgresql.org> | 2025-11-05 11:48:09 +1300 |
| commit | fdda78e361f136ec2b8de579b366c1e66bba1199 (patch) | |
| tree | 455c10b037bcd94d1f82502b4c6a17bf970398fe /src/test | |
| parent | 0a3d27bfe0fb229253aa95feccd0360530b7edd8 (diff) | |
Fix possible usage of incorrect UPPERREL_SETOP RelOptInfo
03d40e4b5 allowed dummy UNION [ALL] children to be removed from the plan
by checking for is_dummy_rel(). That commit neglected to still account
for the relids from the dummy rel so that the correct UPPERREL_SETOP
RelOptInfo could be found and used for adding the Paths to.
Not doing this could result in processing of subsequent UNIONs using the
same RelOptInfo as a previously processed UNION, which could result in
add_path() freeing old Paths that are needed by the previous UNION.
The same fix was independently submitted (2 mins later) by Richard Guo.
Reported-by: Alexander Lakhin <exclusion@gmail.com>
Author: David Rowley <dgrowleyml@gmail.com>
Discussion: https://postgr.es/m/bee34aec-659c-46f1-9ab7-7bbae0b7616c@gmail.com
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/union.out | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/test/regress/expected/union.out b/src/test/regress/expected/union.out index fb77d108337..4533967e84a 100644 --- a/src/test/regress/expected/union.out +++ b/src/test/regress/expected/union.out @@ -1260,14 +1260,14 @@ SELECT four FROM tenk1 WHERE 1=2 UNION SELECT ten FROM tenk1 WHERE 1=2 ORDER BY 1; - QUERY PLAN --------------------------------------- + QUERY PLAN +----------------------------------------------------------------------------------------- Sort Output: unnamed_subquery.two Sort Key: unnamed_subquery.two -> Result Output: unnamed_subquery.two - Replaces: Aggregate + Replaces: Aggregate on unnamed_subquery, unnamed_subquery_1, unnamed_subquery_2 One-Time Filter: false (7 rows) |
