Re: BUG #17606: There is still some glitch in 3f7323cbb fixing failure of MULTIEXPR_SUBLINK

From: Richard Guo <guofenglinux(at)gmail(dot)com>
To: 857348270(at)qq(dot)com, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: BUG #17606: There is still some glitch in 3f7323cbb fixing failure of MULTIEXPR_SUBLINK
Date: 2022-09-05 14:48:02
Message-ID: CAMbWs48Qf=2ZL-d-0=9rYBZUPsp6FdLysuYULTtEvErwi3w3jg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Mon, Sep 5, 2022 at 10:25 PM Richard Guo <guofenglinux(at)gmail(dot)com> wrote:

>
> On Mon, Sep 5, 2022 at 3:33 PM PG Bug reporting form <
> noreply(at)postgresql(dot)org> wrote:
>
>> 3f7323cbb regenerates its Param for each SubPlan by traversing the
>> targetlist. But ignore one point: initplan is not in targetlist.
>> This will result in a failed assertion, or an error like "unexpected
>> PARAM_MULTIEXPR ID: 131074"
>
>
> Since initplan SubPlans do not have args lists, I think it's OK for them
> to share output parameters. So maybe we do not need to do the
> SS_make_multiexprs_unique trick for initplan SubPlans?
>

If I consider it correctly, can we fix the initplan SubPlan issue simply
as below?

--- a/src/backend/optimizer/plan/subselect.c
+++ b/src/backend/optimizer/plan/subselect.c
@@ -911,6 +911,13 @@ SS_make_multiexprs_unique(PlannerInfo *root,
PlannerInfo *subroot)
new_multiexpr_params = lappend(new_multiexpr_params,
params);
}

+ /*
+ * It's OK for initplan SubPlans to share output parameters, so we
do not
+ * need to generate new Param nodes for them.
+ */
+ if (new_multiexpr_params == NIL)
+ return;
+
/*
* Now we must find the Param nodes that reference the MULTIEXPR
outputs
* and update their sublink IDs so they'll reference the new
outputs.

Thanks
Richard

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2022-09-05 15:51:46 Re: BUG #17606: There is still some glitch in 3f7323cbb fixing failure of MULTIEXPR_SUBLINK
Previous Message Richard Guo 2022-09-05 14:25:15 Re: BUG #17606: There is still some glitch in 3f7323cbb fixing failure of MULTIEXPR_SUBLINK