Re: compute_query_id and pg_stat_statements
Kyotaro Horiguchi <horikyota.ntt@gmail.com>
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: rjuju123@gmail.com
Cc: magnus@hagander.net, masao.fujii@oss.nttdata.com, michael@paquier.xyz,
andres@anarazel.de, tgl@sss.pgh.pa.us, alvherre@alvh.no-ip.org,
sfrost@snowman.net, bruce@momjian.us, myon@debian.org,
peter.eisentraut@enterprisedb.com, pgsql-hackers@lists.postgresql.org
Date: 2021-05-13T03:11:12Z
Lists: pgsql-hackers
At Thu, 13 May 2021 10:43:03 +0800, Julien Rouhaud <rjuju123@gmail.com> wrote in > On Thu, May 13, 2021 at 11:26:29AM +0900, Kyotaro Horiguchi wrote: > > > > I believe any "real" > > alternative query-id provider is supposed to be hooked "before" > > pg_stat_statements. (It is a kind of magic to control the order of > > plugins, though.. > > Indeed, you have to configure shared_preload_libraries depending on whether > each module calls the previous post_parse_analyze_hook before or after its own > processing, and that's the main reason why I think a dedicated entry point > would be better. I see it as cleaner than the status-quo. (But still believing less cleaner than DLL:p, since the same problem happens if two query_id-generating modules are competing on the new hook ponit.). You told that a special query-id provider needed to be separated to another DLL, but a preload shared librarie is also a dll and I think any exported function in it can be obtained via load_external_function(). As the result, even if we take the DLL approach, still not need to split out the query-id provider part. By the following config: > query_id_provider = 'pg_stat_statements' the core can obtain the entrypoint of, say, "_PG_calculate_query_id" to call it. And it can be of another module. It seems like the only problem doing that is we don't have a means to call per-process intializer for a preload libralies. regards. -- Kyotaro Horiguchi NTT Open Source Software Center
Commits
-
Allow compute_query_id to be set to 'auto' and make it default
- cafde58b337e 14.0 landed
-
Move pg_stat_statements query jumbling to core.
- 5fd9dfa5f50e 14.0 cited