On Mon, Oct 5, 2020 at 07:58:42PM -0300, Álvaro Herrera wrote: > On 2020-Oct-05, Tom Lane wrote: > > > FWIW, I think this proposal is a mess. I was willing to hold my nose > > and have a queryId field in the internal Query struct without any solid > > consensus about what its semantics are and which extensions get to use it. > > Exposing it to end users seems like a bridge too far, though. In > > particular, I'm afraid that that will cause people to expect it to have > > consistent values across PG versions, or even just across architectures > > within one version. > > I wonder if it would help to purposefully change the computation so that > it is not -- for instance, hash the system_identifier as initial value. > Then users would be forced to accept that it'll change as soon as it > migrates to another server or is upgraded to a new major version.
That seems like a good idea, but it would prevent cross-cluster same-major-version comparisons, which seems like a negative. Perhaps we should add the major version into the hash to handle this. Ideally, let's just put a queryid-hash-version into to the hash, so if we change the computation, we just update the hash version and nothing matches anymore. I do think the queryid has to display independent of pg_stat_statements, because I can see people using queryid for log file and pg_stat_activity comparisons. I also think the ability to have queryid accessible is an important feature outside of pg_stat_statements, so I do think we need a way to move this idea forward. -- Bruce Momjian <br...@momjian.us> https://momjian.us EnterpriseDB https://enterprisedb.com The usefulness of a cup is in its emptiness, Bruce Lee