At Tue, 11 May 2021 18:52:49 +0800, Julien Rouhaud <rjuju...@gmail.com> wrote in > On Tue, May 11, 2021 at 05:41:06PM +0800, Julien Rouhaud wrote: > > On Tue, May 11, 2021 at 10:59:51AM +0200, Magnus Hagander wrote: > > > > > > That doesn't fundamentally make it impossible, you just have to add it > > > to the list of variables being copied over, wouldn't you? See > > > save_backend_variables() > > > > Yes, I agree, and that's what I meant by "explicitly handled". The thing is > > that I don't know if that's the best way to go, as it doesn't solve the "is > > it > > actually enabled" and/or "which implementation is used". At least the > > patch I > > sent, although it's totally a hack, let you know if compute_query_id is > > enabled > > or not. I'm fine with implementing it that way, but only if there's a > > consensus. > > Actually, isn't that how e.g. wal_buffers = -1 is working? The original value > is lost and what you get is the computed value. This is a bit different here > as the value isn't always changed, and can be changed interactively but > otherwise it's the same behavior.
If we look it in pg_settings, it shows the current value and the value at boot-time. So I'm fine with that behavior. However, IMHO, I doubt the necessity of "on". Assuming that we require any module that wants query-id to call queryIdWanted() at any time after each process startup (or it could be inherited to children), I think only "auto" and "off" are enough for the variable. Thinking in this line, the variable is a subset of a GUC variable to specify the name of a query-id provider (as Andres suggested upthread), and I think it would work better in future. So for now I propose that we have a variable query_id_provider that has only 'default' and 'none' as the domain. We can later expand it so that any other query-id provider modules can be loaded without chaning the interface. postgresql.conf # query_id_provider = 'default' # provider module for query-id. 'none' means # # disabling query-id calculation. If we want to have a direct way to know whether query-id is active or not, it'd be good to have a read-only variable "query_id_active". regards. -- Kyotaro Horiguchi NTT Open Source Software Center