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


Reply via email to