Thread: obsolete reference to a SubPlan field

obsolete reference to a SubPlan field

From
Amit Langote
Date:
I noticed $subject while looking at something involving SubLinks and
SubPlans.  It seems eab6b8b27eb removed the "plan" field from the
SubPlan node struct definition, but the following line from
expression_tree_mutator():

                /* but not the sub-Plan itself, which is referenced as-is */

and the following from expression_tree_walker():

               /* recurse into the testexpr, but not into the Plan */

both of which I think refer to that no-longer-existent field, appear
to have survived multiple commits that moved the SubPlan expression
processing code around.

Attached patch removes those.

-- 
Amit Langote
EDB: http://www.enterprisedb.com

Attachment

Re: obsolete reference to a SubPlan field

From
Robert Haas
Date:
On Wed, Feb 2, 2022 at 3:08 AM Amit Langote <amitlangote09@gmail.com> wrote:
> I noticed $subject while looking at something involving SubLinks and
> SubPlans.  It seems eab6b8b27eb removed the "plan" field from the
> SubPlan node struct definition, but the following line from
> expression_tree_mutator():
>
>                 /* but not the sub-Plan itself, which is referenced as-is */
>
> and the following from expression_tree_walker():
>
>                /* recurse into the testexpr, but not into the Plan */
>
> both of which I think refer to that no-longer-existent field, appear
> to have survived multiple commits that moved the SubPlan expression
> processing code around.
>
> Attached patch removes those.

Looks right to me. Tom, any comments?

-- 
Robert Haas
EDB: http://www.enterprisedb.com



Re: obsolete reference to a SubPlan field

From
Tom Lane
Date:
Robert Haas <robertmhaas@gmail.com> writes:
> On Wed, Feb 2, 2022 at 3:08 AM Amit Langote <amitlangote09@gmail.com> wrote:
>> Attached patch removes those.

> Looks right to me. Tom, any comments?

I'm pretty sure I left those comments alone on purpose back in 2007,
and I don't find simply removing them to be an improvement.

In principle, readers might expect that tree walkers/mutators
would descend to a SubPlan's query, as they do for a SubLink's
query.  Calling out the fact that that doesn't happen seems
useful to me.  If you don't like this particular wording of those
comments, we can discuss better wordings ... but I doubt that
nothing-at-all is better.

            regards, tom lane



Re: obsolete reference to a SubPlan field

From
Robert Haas
Date:
On Mon, Mar 14, 2022 at 1:45 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
> > On Wed, Feb 2, 2022 at 3:08 AM Amit Langote <amitlangote09@gmail.com> wrote:
> >> Attached patch removes those.
>
> > Looks right to me. Tom, any comments?
>
> I'm pretty sure I left those comments alone on purpose back in 2007,
> and I don't find simply removing them to be an improvement.
>
> In principle, readers might expect that tree walkers/mutators
> would descend to a SubPlan's query, as they do for a SubLink's
> query.  Calling out the fact that that doesn't happen seems
> useful to me.  If you don't like this particular wording of those
> comments, we can discuss better wordings ... but I doubt that
> nothing-at-all is better.

OK, well if it was intentional, then I do think some rewording is
justified. It seems to me that those comments, and especially the one
in expression_tree_mutator(), seem like they are talking about an
actual pointer, rather than some other kind of logical link. Otherwise
why is it sort of referenced along the way as we go through other
things that are all actual pointers? It certainly leads one to expect
a Plan * that isn't there.

I think it's a fine idea to explain that, on a conceptual level, we're
just walking the Plan data structure and the pointers which it
contains, and therefore won't reach down into a sub-Plan that is not
something we actually point to. Or whatever words clarify the intent.
But a passing reference that sounds like a pointer when it isn't is
worse than nothing at all.

-- 
Robert Haas
EDB: http://www.enterprisedb.com