Re: pg_stat_statements and "IN" conditions
Dmitry Dolgov <9erthalion6@gmail.com>
From: Dmitry Dolgov <9erthalion6@gmail.com>
To: Álvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Julien Rouhaud <rjuju123@gmail.com>, Sami Imseih <samimseih@gmail.com>, Kirill Reshke <reshkekirill@gmail.com>, Sergei Kornilov <sk@zsrv.org>,
yasuo.honda@gmail.com, tgl@sss.pgh.pa.us, smithpb2250@gmail.com, vignesh21@gmail.com,
michael@paquier.xyz, nathandbossart@gmail.com, stark.cfm@gmail.com, geidav.pg@gmail.com,
marcos@f10.com.br, robertmhaas@gmail.com, david@pgmasters.net, pgsql-hackers@postgresql.org, pavel.trukhanov@gmail.com, Sutou Kouhei <kou@clear-code.com>
Date: 2025-03-18T09:45:14Z
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
> On Mon, Mar 17, 2025 at 08:14:16PM GMT, Álvaro Herrera wrote: > On 2025-Mar-17, Álvaro Herrera wrote: > > > You can see my patch on top of yours here: > > https://github.com/alvherre/postgres/commits/query_id_squash_values/ > > and the CI run here: > > https://cirrus-ci.com/build/5660053472018432 > > Heh, this blew up on bogus SGML markup :-( Fixed and running again: > https://cirrus-ci.com/build/4822893680394240 Thanks, much appreciated! I've inspected the diff between patches and run few tests, at the first glance everything looks fine. > I am tempted to say that explicit casts should also be considered > squashable (that is, in IsSquashableConst() also allow the case of > func->funcformat == COERCE_EXPLICIT_CAST). Well, I admit I may have been burned too much by the initial reception of the patch and handled it too conservatively in this regard. Originally I also had a concern about normalized queries representation for explicit cast case, but it was resolved by Julien's suggestion to switch to the /* ... */ format. > I have to admit that I am leaning towards removing the immutability > constraint. The reason is that we already require the function to be > boostrapped (due to the OID test) and to have implicit cast form, so > that limits which functions are recognized; the only ones there that are > not immutable are: > > castsource │ casttarget │ castfunc > ─────────────────────────────┼──────────────────────────┼────────────────────────────────────────── > text │ regclass │ regclass(text) > character varying │ regclass │ regclass(text) > date │ timestamp with time zone │ timestamptz(date) > time without time zone │ time with time zone │ timetz(time without time zone) > timestamp without time zone │ timestamp with time zone │ timestamptz(timestamp without time zone) Agree, when put together with the OID limitation it doesn't look so bad. Somehow I was thinking about the Sami's proposal and the discussion in more abstract terms, as if we talk about any arbitrary mutable functions to squash -- I still would be cautious about hiding non-bootstrapped mutable functions.