Re: Query Jumbling for CALL and SET utility statements - Mailing list pgsql-hackers

From Drouvot, Bertrand
Subject Re: Query Jumbling for CALL and SET utility statements
Date
Msg-id a0d66747-3f8c-5346-5baa-61299e2cb4da@amazon.com
Whole thread Raw
In response to Re: [PATCH] Query Jumbling for CALL and SET utility statements  ("Drouvot, Bertrand" <bdrouvot@amazon.com>)
Responses Re: Query Jumbling for CALL and SET utility statements
Re: Query Jumbling for CALL and SET utility statements
Re: Query Jumbling for CALL and SET utility statements
List pgsql-hackers

Hi,

On 9/8/22 6:07 PM, Drouvot, Bertrand wrote:
On 9/8/22 1:29 PM, Julien Rouhaud wrote:

IME if your application relies on 2PC it's very likely that you will hit the
exact same problems described in your original email. 

Agree

 What do you think about
normalizing those too while working on the subject?

That sounds reasonable, I'll have a look at those too while at it.

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.

Regards,

-- 
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
Attachment

pgsql-hackers by date:

Previous
From: Dilip Kumar
Date:
Subject: Re: making relfilenodes 56 bits
Next
From: "Drouvot, Bertrand"
Date:
Subject: Re: Patch to address creation of PgStat* contexts with null parent context