Re: pg_stat_statements and "IN" conditions
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Dmitry Dolgov <9erthalion6@gmail.com>
Cc: Zhihong Yu <zyu@yugabyte.com>, David Steele <david@pgmasters.net>,
PostgreSQL-development <pgsql-hackers@postgresql.org>,
Greg Stark <stark@mit.edu>,
Pavel Trukhanov <pavel.trukhanov@gmail.com>
Date: 2022-03-10T17:11:59Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Introduce squashing of constant lists in query jumbling
- 62d712ecfd94 18.0 landed
-
Make documentation builds reproducible
- b0f0a9432d0b 17.0 cited
-
Include values of A_Const nodes in query jumbling
- 9ba37b2cb6a1 16.0 cited
-
Teach planner about more monotonic window functions
- 456fa635a909 16.0 cited
-
Split up guc.c for better build speed and ease of maintenance.
- 0a20ff54f5e6 16.0 cited
Dmitry Dolgov <9erthalion6@gmail.com> writes: > New status: Waiting on Author > 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. 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. If you backed off to just treating ArrayExprs containing different numbers of Consts as equivalent, maybe that'd be something we could adopt without fixing point 1. I don't think anything that fuzzes the treatment of Params can get away with that, though. regards, tom lane