mirror of
https://github.com/postgres/postgres.git
synced 2025-10-10 00:03:27 -04:00
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:
parent
585e31fcb6
commit
6f79024df3
@ -1397,7 +1397,7 @@ convert_ANY_sublink_to_join(PlannerInfo *root, SubLink *sublink,
|
|||||||
*/
|
*/
|
||||||
nsitem = addRangeTableEntryForSubquery(pstate,
|
nsitem = addRangeTableEntryForSubquery(pstate,
|
||||||
subselect,
|
subselect,
|
||||||
makeAlias("ANY_subquery", NIL),
|
NULL,
|
||||||
use_lateral,
|
use_lateral,
|
||||||
false);
|
false);
|
||||||
rte = nsitem->p_rte;
|
rte = nsitem->p_rte;
|
||||||
|
@ -546,14 +546,14 @@ SELECT * FROM tab_anti t1 WHERE t1.a IN
|
|||||||
(SELECT a FROM tab_anti t2 WHERE t2.b IN
|
(SELECT a FROM tab_anti t2 WHERE t2.b IN
|
||||||
(SELECT t1.b FROM tab_anti t3 WHERE t2.a > 1 OFFSET 0));
|
(SELECT t1.b FROM tab_anti t3 WHERE t2.a > 1 OFFSET 0));
|
||||||
QUERY PLAN
|
QUERY PLAN
|
||||||
-------------------------------------------------
|
---------------------------------------------------
|
||||||
Nested Loop Semi Join
|
Nested Loop Semi Join
|
||||||
-> Seq Scan on tab_anti t1
|
-> Seq Scan on tab_anti t1
|
||||||
-> Nested Loop Semi Join
|
-> Nested Loop Semi Join
|
||||||
Join Filter: (t1.a = t2.a)
|
Join Filter: (t1.a = t2.a)
|
||||||
-> Seq Scan on tab_anti t2
|
-> Seq Scan on tab_anti t2
|
||||||
-> Subquery Scan on "ANY_subquery"
|
-> Subquery Scan on unnamed_subquery
|
||||||
Filter: (t2.b = "ANY_subquery".b)
|
Filter: (t2.b = unnamed_subquery.b)
|
||||||
-> Result
|
-> Result
|
||||||
One-Time Filter: (t2.a > 1)
|
One-Time Filter: (t2.a > 1)
|
||||||
-> Seq Scan on tab_anti t3
|
-> Seq Scan on tab_anti t3
|
||||||
|
@ -1692,14 +1692,14 @@ select * from int4_tbl o where (f1, f1) in
|
|||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Nested Loop Semi Join
|
Nested Loop Semi Join
|
||||||
Output: o.f1
|
Output: o.f1
|
||||||
Join Filter: (o.f1 = "ANY_subquery".f1)
|
Join Filter: (o.f1 = unnamed_subquery.f1)
|
||||||
-> Seq Scan on public.int4_tbl o
|
-> Seq Scan on public.int4_tbl o
|
||||||
Output: o.f1
|
Output: o.f1
|
||||||
-> Materialize
|
-> Materialize
|
||||||
Output: "ANY_subquery".f1, "ANY_subquery".g
|
Output: unnamed_subquery.f1, unnamed_subquery.g
|
||||||
-> Subquery Scan on "ANY_subquery"
|
-> Subquery Scan on unnamed_subquery
|
||||||
Output: "ANY_subquery".f1, "ANY_subquery".g
|
Output: unnamed_subquery.f1, unnamed_subquery.g
|
||||||
Filter: ("ANY_subquery".f1 = "ANY_subquery".g)
|
Filter: (unnamed_subquery.f1 = unnamed_subquery.g)
|
||||||
-> Result
|
-> Result
|
||||||
Output: i.f1, ((generate_series(1, 50)) / 10)
|
Output: i.f1, ((generate_series(1, 50)) / 10)
|
||||||
-> ProjectSet
|
-> ProjectSet
|
||||||
@ -2867,8 +2867,8 @@ ON B.hundred in (SELECT min(c.hundred) FROM tenk2 C WHERE c.odd = b.odd);
|
|||||||
-> Memoize
|
-> Memoize
|
||||||
Cache Key: b.hundred, b.odd
|
Cache Key: b.hundred, b.odd
|
||||||
Cache Mode: binary
|
Cache Mode: binary
|
||||||
-> Subquery Scan on "ANY_subquery"
|
-> Subquery Scan on unnamed_subquery
|
||||||
Filter: (b.hundred = "ANY_subquery".min)
|
Filter: (b.hundred = unnamed_subquery.min)
|
||||||
-> Result
|
-> Result
|
||||||
InitPlan 1
|
InitPlan 1
|
||||||
-> Limit
|
-> Limit
|
||||||
|
Loading…
x
Reference in New Issue
Block a user