From: | Atsushi Torikoshi <atorik(at)gmail(dot)com> |
---|---|
To: | legrand legrand <legrand_legrand(at)hotmail(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Is it useful to record whether plans are generic or custom? |
Date: | 2020-05-19 13:56:17 |
Message-ID: | CACZ0uYGfMHVvKFCU5tEbRejew8VTagLaEqUVW0t6SZ1ynMO9hw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sat, May 16, 2020 at 6:01 PM legrand legrand <legrand_legrand(at)hotmail(dot)com>
wrote:
> > To track executed plan types, I think execution layer hooks
> > are appropriate.
> > These hooks, however, take QueryDesc as a param and it does
> > not include cached plan information.
>
> It seems that the same QueryDesc entry is reused when executing
> a generic plan.
> For exemple marking queryDesc->plannedstmt->queryId (outside
> pg_stat_statements) with a pseudo tag during ExecutorStart
> reappears in later executions with generic plans ...
>
> Is this QueryDesc reusable by a custom plan ? If not maybe a solution
> could be to add a flag in queryDesc->plannedstmt ?
>
Thanks for your proposal!
I first thought it was a good idea and tried to add a flag to QueryDesc,
but the comments on QueryDesc say it encapsulates everything that
the executor needs to execute a query.
Whether a plan is generic or custom is not what executor needs to
know for running queries, so now I hesitate to do so.
Instead, I'm now considering using a static hash for prepared queries
(static HTAB *prepared_queries).
BTW, I'd also appreciate other opinions about recording the number
of generic and custom plans on pg_stat_statemtents.
Regards,
--
Atsushi Torikoshi
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2020-05-19 14:22:35 | Re: factorial function/phase out postfix operators? |
Previous Message | Tom Lane | 2020-05-19 13:51:36 | Re: factorial function/phase out postfix operators? |