Re: Query Jumbling for CALL and SET utility statements
bt22kawamotok <bt22kawamotok@oss.nttdata.com>
From: bt22kawamotok <bt22kawamotok@oss.nttdata.com>
To: "Drouvot, Bertrand" <bdrouvot@amazon.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-09-13T02:43:52Z
Lists: pgsql-hackers
> Attached v5 to normalize 2PC commands too, so that we get things like: > > > create table test_tx (a int); > begin; > prepare transaction 'tx1'; > insert into test_tx values (1); > commit prepared 'tx1'; > begin; > prepare transaction 'tx2'; > insert into test_tx values (2); > commit prepared 'tx2'; > begin; > prepare transaction 'tx3'; > insert into test_tx values (3); > rollback prepared 'tx3'; > begin; > prepare transaction 'tx4'; > insert into test_tx values (4); > rollback prepared 'tx4'; > SELECT query, calls, rows FROM pg_stat_statements ORDER BY query > COLLATE "C"; > query > | calls | rows > ------------------------------------------------------------------------------+-------+------ > SELECT pg_stat_statements_reset() > | 1 | 1 > SELECT query, calls, rows FROM pg_stat_statements ORDER BY query > COLLATE "C" | 0 | 0 > begin > | 4 | 0 > commit prepared $1 > | 2 | 0 > create table test_tx (a int) > | 1 | 0 > insert into test_tx values ($1) > | 4 | 4 > prepare transaction $1 > | 4 | 0 > rollback prepared $1 > | 2 | 0 > (8 rows) > > For those ones I also had to do some minor changes in gram.y and to > the TransactionStmt struct to record the gid location. Thanks Bertrand. I used your patch. It's looks very good. I found that utility statement is counted separately in upper and lower case. For example BEGIN and begin are counted separately. Is it difficult to fix this problem? Regards, Kotaro Kawamoto
Commits
-
Show values of SET statements as constants in pg_stat_statements
- dc68515968e8 18.0 landed
-
Teach contrib/pg_stat_statements to handle multi-statement commands better.
- 83f2061dd037 10.0 cited