From: | Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com> |
---|---|
To: | rjuju123(at)gmail(dot)com |
Cc: | magnus(at)hagander(dot)net, masao(dot)fujii(at)oss(dot)nttdata(dot)com, michael(at)paquier(dot)xyz, andres(at)anarazel(dot)de, tgl(at)sss(dot)pgh(dot)pa(dot)us, alvherre(at)alvh(dot)no-ip(dot)org, sfrost(at)snowman(dot)net, bruce(at)momjian(dot)us, myon(at)debian(dot)org, peter(dot)eisentraut(at)enterprisedb(dot)com, pgsql-hackers(at)lists(dot)postgresql(dot)org |
Subject: | Re: compute_query_id and pg_stat_statements |
Date: | 2021-05-13 00:59:43 |
Message-ID: | 20210513.095943.2029736808766317326.horikyota.ntt@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
At Wed, 12 May 2021 18:09:30 +0800, Julien Rouhaud <rjuju123(at)gmail(dot)com> wrote in
> On Wed, May 12, 2021 at 06:37:24PM +0900, Kyotaro Horiguchi wrote:
> > At Wed, 12 May 2021 14:05:16 +0800, Julien Rouhaud <rjuju123(at)gmail(dot)com> wrote in
> > >
> > > And if I'm not mistaken, pg_store_plans also wants a different queryid
> > > implementation, but has to handle a secondary queryid on top of it
> > > (https://github.com/ossc-db/pg_store_plans/blob/master/pg_store_plans.c#L843-L855)
> >
> > Yeah, the extension intended to be used joining with the
> > pg_stat_statements view. And the reason for the second query-id dates
> > back to the era when query id was not available in the
> > pg_stat_statements view. Now it is mere a fall-back query id when
> > pg_stat_statments is not active. Now that the in-core query-id is
> > available, I think there's no reason to keep that implement.
> >
> > > So here again what the extension want is to get rid of pg_stat_statements (and
> > > now core) queryid implementation.
> >
> > So the extension might be a good reason for the discussion^^;
>
> Indeed. So IIUC, what pg_store_plans wants is:
Ugg. Very sorry. My brain should need more oxygen, or caffeine.. The
last sentence forgetting a negation. The plugin does not need a
special query-id provider so the special provider can be removed
without problems if the core provides one.
> - to use its own query_id implementation
> - to be able to be joined to pg_stat_statements
>
> Is that correct?
It is correct, but a bit short in detail.
The query_id of its own is provided because pg_stat_statements did not
expose query_id. And it has been preserved only for the case the
plugin is used without pg_stat_statements activated. Now that the
in-core query_id is available, the last reason for the special
provider has gone.
> If yes, it seems that starting with pg14, it can be easily achieved by:
So, it would be a bit different.
> - documenting to disable compute_query_id
documenting to *not disable* compute_query_id. That is set it to on
or auto.
> - eventually error out at execution time if it's enabled
So. the extension would check if any query_id provider *is* active.
> - don't call queryIdWanted()
> - expose its query_id
>
> It will then work just fine, and will be more efficient compared to what is
> done today as only one queryid will be calculated.
After reading Magnus' comment nearby, I realized that my most
significant concern here is how to know any query_id provider is
active. The way of setting the hook cannot enforce notifying that
kind of things on plugins. For me implementing them as a dll looked as
one of the most promising way of enabling that without needing any
boiler-plates.
Another not-prefect (in that it needs a boiler-plate) but workable way
is letting query-id providers set some variable including GUC
explicitly as Magnus' suggested. GUC would be better in that it is
naturally observable from users.
Even though there'a possibility that a developer of a query_id
provider forgets to set it, but maybe it would be easily
noticeable. On the other hand it gives a sure means to know any
query_id provider is active.
How about adding a GUC_INTERNAL "current_query_provider" or such?
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center
From | Date | Subject | |
---|---|---|---|
Next Message | Kyotaro Horiguchi | 2021-05-13 01:12:37 | Re: compute_query_id and pg_stat_statements |
Previous Message | Julien Rouhaud | 2021-05-13 00:52:36 | Re: compute_query_id and pg_stat_statements |