On Mon, Sep 1, 2025 at 11:57 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I'm slightly tempted to do the dirty work in cost_subplan() itself,
> ie pass a NULL down to cost_qual_eval from there. Right now it
> doesn't matter, but maybe in future there would be some other
> safer use for the parent root in cost_subplan()?
Fair point.
> This approach
> would force the same behavior for the third caller of cost_subplan,
> SS_make_initplan_from_plan. But I don't think it matters there,
> since an initplan will by definition not be consulting anything from
> the parent plan.
Yeah, it should be safe to use a NULL root for initplans. Besides, in
the case of SS_make_initplan_from_plan, testexpr will be NULL, and
cost_qual_eval() becomes a no-op.
Here is the patch that passes root as NULL to cost_qual_eval() in
cost_subplan(), along with some commentary about why.
- Richard