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
This commit is contained in:
Robert Haas 2025-09-08 12:24:02 -04:00
parent 585e31fcb6
commit 6f79024df3
3 changed files with 12 additions and 12 deletions

View File

@ -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;

View File

@ -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

View File

@ -1692,14 +1692,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
@ -2867,8 +2867,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