From: | torikoshia <torikoshia(at)oss(dot)nttdata(dot)com> |
---|---|
To: | Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com> |
Cc: | tatsuro(dot)yamada(dot)tf(at)nttcom(dot)co(dot)jp, sunchengxi(at)highgo(dot)com, pgsql-hackers(at)postgresql(dot)org, masao(dot)fujii(at)oss(dot)nttdata(dot)com, pavel(dot)stehule(at)gmail(dot)com, legrand_legrand(at)hotmail(dot)com |
Subject: | Re: Is it useful to record whether plans are generic or custom? |
Date: | 2021-02-08 05:02:23 |
Message-ID: | 0268e34577c1d516c8beb12cb0ccc1a7@oss.nttdata.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2021-02-04 11:19, Kyotaro Horiguchi wrote:
> At Thu, 04 Feb 2021 10:16:47 +0900, torikoshia
> <torikoshia(at)oss(dot)nttdata(dot)com> wrote in
>> Chengxi Sun, Yamada-san, Horiguchi-san,
>>
>> Thanks for all your comments.
>> Adding only the number of generic plan execution seems acceptable.
>>
>> On Mon, Jan 25, 2021 at 2:10 PM Kyotaro Horiguchi
>> <horikyota(dot)ntt(at)gmail(dot)com> wrote:
>> > Note that ActivePortal is the closest nested portal. So it gives the
>> > wrong result for nested portals.
>>
>> I may be wrong, but I thought it was ok since the closest nested
>> portal is the portal to be executed.
>
> After executing the inner-most portal, is_plan_type_generic has a
> value for the inner-most portal and it won't be changed ever after. At
> the ExecutorEnd of all the upper-portals see the value for the
> inner-most portal left behind is_plan_type_generic nevertheless the
> portals at every nest level are independent.
>
>> ActivePortal is used in ExecutorStart hook in the patch.
>> And as far as I read PortalStart(), ActivePortal is changed to the
>> portal to be executed before ExecutorStart().
>>
>> If possible, could you tell me the specific case which causes wrong
>> results?
>
> Running a plpgsql function that does PREPRE in a query that does
> PREPARE?
Thanks for your explanation!
I confirmed that it in fact happened.
To avoid it, attached patch preserves the is_plan_type_generic before
changing it and sets it back at the end of pgss_ExecutorEnd().
Any thoughts?
Regards,
--
Atsushi Torikoshi
Attachment | Content-Type | Size |
---|---|---|
v5-0001-add-plan-type-to-pgss.patch | text/x-diff | 5.6 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Yugo NAGATA | 2021-02-08 05:12:35 | Re: Is Recovery actually paused? |
Previous Message | osumi.takamichi@fujitsu.com | 2021-02-08 04:43:59 | RE: Single transaction in the tablesync worker? |