| From: | Sami Imseih <samimseih(dot)pg(at)gmail(dot)com> |
|---|---|
| To: | sirisha chamarthi <sirichamarthi22(at)gmail(dot)com> |
| Cc: | Peter Eisentraut <peter(at)eisentraut(dot)org>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Alexander Korotkov <akorotkov(at)postgresql(dot)org>, Michael Paquier <michael(at)paquier(dot)xyz> |
| Subject: | Re: WAIT FOR command should do some query jumbling |
| Date: | 2026-08-30 01:02:53 |
| Message-ID: | CAN12+Y++gqFTmmnYWXEuEqH7xGLY_NeoE3ixOZxfqGWjEijeaA@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi,
> The query jumbling facilities should be used to handle this.
+1 for this. I think we need to do a bit more than what is suggested
in v1-0001, which only normalizes the target LSN. I think we should
also look at the rest of the rest of the WAIT FOR syntax and normalize
option values, for example
```
WAIT FOR LSN 'FFFFFFFF/FFFFFFFF'
WITH (MODE 'primary_flush', TIMEOUT '1ms', NO_THROW);
WAIT FOR LSN 'FFFFFFFE/FFFFFFFF'
WITH (MODE 'primary_flush', TIMEOUT '2ms', NO_THROW);
```
These should normalize to one pg_stat_statements entry
```
WAIT FOR LSN $1 WITH (MODE $2, TIMEOUT $3, NO_THROW)
```
Because these options are carried as DefElem, I think we should also
track DefElem arg_location, and then statement parse nodes with such
DefElem option lists can use pg_node_attr(custom_query_jumble) to
traverse those lists and normalize the option values.
WAIT FOR is one case, but I think the same approach could also be
useful for other utility statements such as VACUUM and ALTER ROLE. For
example, ALTER ROLE could normalize PASSWORD and VALID UNTIL. I have
kept this series focused on WAIT FOR for now, though.
So, attached in v2, v2-0001 adds the DefElem arg_location tracking,
and v2-0002 adds the WAIT FOR jumbling changes.
JumbleDefElemOptions() is a small helper in queryjumblefuncs.c that
other statements can use to implement the same kind of option
jumbling.
CC'ing Michael also to get his thoughts on the approach.
--
Sami Imseih
Amazon Web Services (AWS)
| Attachment | Content-Type | Size |
|---|---|---|
| v2-0001-Track-DefElem-argument-locations-to-allow-query-n.patch | application/octet-stream | 2.1 KB |
| v2-0002-Normalize-WAIT-FOR-WITH-clause-values-in-pg_stat_.patch | application/octet-stream | 5.5 KB |
| From | Date | Subject | |
|---|---|---|---|
| Previous Message | Zsolt Parragi | 2026-08-29 21:36:14 | Re: Offline data checksum changes can cause incorrect checksum state on standbys |