Re: path->param_info only set for lateral? - Mailing list pgsql-hackers

From James Coleman
Subject Re: path->param_info only set for lateral?
Date
Msg-id CAAaqYe8Lf5kF8ADPhkt3yY21nU6ATOrJbQBZpXCmoxNCSugpJA@mail.gmail.com
Whole thread Raw
In response to Re: path->param_info only set for lateral?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On Sun, Jun 18, 2023 at 10:57 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> James Coleman <jtc331@gmail.com> writes:
> > Over in "Parallelize correlated subqueries that execute within each
> > worker" [1} Richard Guo found a bug in the current version of my patch
> > in that thread. While debugging that issue I've been wondering why
> > Path's param_info field seems to be NULL unless there is a LATERAL
> > reference even though there may be non-lateral outer params
> > referenced.
>
> Per pathnodes.h:
>
>  * "param_info", if not NULL, links to a ParamPathInfo that identifies outer
>  * relation(s) that provide parameter values to each scan of this path.
>  * That means this path can only be joined to those rels by means of nestloop
>  * joins with this path on the inside.  ...
>
> We're only interested in this for params that are coming from other
> relations of the same query level, so that they affect join order and
> join algorithm choices.  Params coming down from outer query levels
> are much like EXTERN params to the planner: they are pseudoconstants
> for any one execution of the current query level.
>
> This isn't just LATERAL stuff; it's also intentionally-generated
> nestloop-with-inner-indexscan-cases.  But it's not outer-level Params.
> Even though those are also PARAM_EXEC Params, they are fundamentally
> different animals for the planner's purposes.

Thanks for the explanation.

I wonder if it'd be worth clarifying the comment slightly to hint in
that direction (like the attached)?

Thanks,
James Coleman

Attachment

pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: Optimizing "boundary cases" during backward scan B-Tree index descents
Next
From: Michael Paquier
Date:
Subject: Re: allow granting CLUSTER, REFRESH MATERIALIZED VIEW, and REINDEX