v3-0002-Don-t-generate-fake-ANY_subquery-aliases-either.patch
text/x-diff
Filename: v3-0002-Don-t-generate-fake-ANY_subquery-aliases-either.patch
Type: text/x-diff
Part: 1
Message:
Re: magical eref alias names
Patch
Format: format-patch
Series: patch v3-0002
Subject: Don't generate fake "ANY_subquery" aliases, either.
| File | + | − |
|---|---|---|
| src/backend/optimizer/plan/subselect.c | 1 | 1 |
| src/test/regress/expected/memoize.out | 4 | 4 |
| src/test/regress/expected/subselect.out | 7 | 7 |
From 4bf665212789c0856dd4b166ca9e0359bca3994e Mon Sep 17 00:00:00 2001
From: Robert Haas <rhaas@postgresql.org>
Date: Wed, 23 Jul 2025 17:12:34 -0400
Subject: [PATCH v3 2/3] Don't generate fake "ANY_subquery" aliases, either.
This is just like the previous commit, but for a different invented
alias name.
Author: Robert Haas <rhaas@postgresql.org>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/CA+TgmoYSYmDA2GvanzPMci084n+mVucv0bJ0HPbs6uhmMN6HMg@mail.gmail.com
---
src/backend/optimizer/plan/subselect.c | 2 +-
src/test/regress/expected/memoize.out | 8 ++++----
src/test/regress/expected/subselect.out | 14 +++++++-------
3 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/backend/optimizer/plan/subselect.c b/src/backend/optimizer/plan/subselect.c
index d71ed958e31..fae18548e07 100644
--- a/src/backend/optimizer/plan/subselect.c
+++ b/src/backend/optimizer/plan/subselect.c
@@ -1397,7 +1397,7 @@ convert_ANY_sublink_to_join(PlannerInfo *root, SubLink *sublink,
*/
nsitem = addRangeTableEntryForSubquery(pstate,
subselect,
- makeAlias("ANY_subquery", NIL),
+ NULL,
use_lateral,
false);
rte = nsitem->p_rte;
diff --git a/src/test/regress/expected/memoize.out b/src/test/regress/expected/memoize.out
index 150dc1b44cf..fbcaf113266 100644
--- a/src/test/regress/expected/memoize.out
+++ b/src/test/regress/expected/memoize.out
@@ -545,15 +545,15 @@ EXPLAIN (COSTS OFF)
SELECT * FROM tab_anti t1 WHERE t1.a IN
(SELECT a FROM tab_anti t2 WHERE t2.b IN
(SELECT t1.b FROM tab_anti t3 WHERE t2.a > 1 OFFSET 0));
- QUERY PLAN
--------------------------------------------------
+ QUERY PLAN
+---------------------------------------------------
Nested Loop Semi Join
-> Seq Scan on tab_anti t1
-> Nested Loop Semi Join
Join Filter: (t1.a = t2.a)
-> Seq Scan on tab_anti t2
- -> Subquery Scan on "ANY_subquery"
- Filter: (t2.b = "ANY_subquery".b)
+ -> Subquery Scan on unnamed_subquery
+ Filter: (t2.b = unnamed_subquery.b)
-> Result
One-Time Filter: (t2.a > 1)
-> Seq Scan on tab_anti t3
diff --git a/src/test/regress/expected/subselect.out b/src/test/regress/expected/subselect.out
index 18fed63e738..54df8fcbba9 100644
--- a/src/test/regress/expected/subselect.out
+++ b/src/test/regress/expected/subselect.out
@@ -1467,14 +1467,14 @@ select * from int4_tbl o where (f1, f1) in
-------------------------------------------------------------------
Nested Loop Semi Join
Output: o.f1
- Join Filter: (o.f1 = "ANY_subquery".f1)
+ Join Filter: (o.f1 = unnamed_subquery.f1)
-> Seq Scan on public.int4_tbl o
Output: o.f1
-> Materialize
- Output: "ANY_subquery".f1, "ANY_subquery".g
- -> Subquery Scan on "ANY_subquery"
- Output: "ANY_subquery".f1, "ANY_subquery".g
- Filter: ("ANY_subquery".f1 = "ANY_subquery".g)
+ Output: unnamed_subquery.f1, unnamed_subquery.g
+ -> Subquery Scan on unnamed_subquery
+ Output: unnamed_subquery.f1, unnamed_subquery.g
+ Filter: (unnamed_subquery.f1 = unnamed_subquery.g)
-> Result
Output: i.f1, ((generate_series(1, 50)) / 10)
-> ProjectSet
@@ -2642,8 +2642,8 @@ ON B.hundred in (SELECT min(c.hundred) FROM tenk2 C WHERE c.odd = b.odd);
-> Memoize
Cache Key: b.hundred, b.odd
Cache Mode: binary
- -> Subquery Scan on "ANY_subquery"
- Filter: (b.hundred = "ANY_subquery".min)
+ -> Subquery Scan on unnamed_subquery
+ Filter: (b.hundred = unnamed_subquery.min)
-> Result
InitPlan 1
-> Limit
--
2.43.5