On Thu, Mar 10, 2022 at 12:12 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > > This seems incorrect, as the only feedback I've got was "this is a bad > > idea", and no reaction on follow-up questions. > > I changed the status because it seems to me there is no chance of > this being committed as-is. > > 1. I think an absolute prerequisite before we could even consider > changing the query jumbler rules this much is to do the work that was > put off when the jumbler was moved into core: that is, provide some > honest support for multiple query-ID generation methods being used at > the same time. Even if you successfully make a case for > pg_stat_statements to act this way, other consumers of query IDs > aren't going to be happy with it.
FWIW, I don't find this convincing at all. Query jumbling is already somewhat expensive, and it seems unlikely that the same person is going to want to jumble queries in one way for pg_stat_statements and another way for pg_stat_broccoli or whatever their other extension is. Putting a lot of engineering work into something with such a marginal use case seems not worthwhile to me - and also likely futile, because I don't see how it could realistically be made nearly as cheap as a single jumble. > 2. You haven't made a case for it. The original complaint was > about different lengths of IN lists not being treated as equivalent, > but this patch has decided to do I'm-not-even-sure-quite-what > about treating different Params as equivalent. Plus you're trying > to invoke eval_const_expressions in the jumbler; that is absolutely > Not OK, for both safety and semantic reasons. I think there are two separate points here, one about patch quality and the other about whether the basic idea is good. I think the basic idea is good. I do not contend that collapsing IN-lists of arbitrary length is what everyone wants in all cases, but it seems entirely reasonable to me to think that it is what some people want. So I would say just make it a parameter and let people configure whichever behavior they want. My bet is 95% of users would prefer to have it on, but even if that's wildly wrong, having it as an optional behavior hurts nobody. Let it be off by default and let those who want it flip the toggle. On the code quality issue, I haven't read the patch but your concerns sound well-founded to me from reading what you wrote. -- Robert Haas EDB: http://www.enterprisedb.com