Extensibility proposal - transaction start callbacks - Mailing list pgsql-hackers

From Alastair Turner
Subject Extensibility proposal - transaction start callbacks
Date
Msg-id CAC0GmyzrT8m4mgvnScNJkcrMzwu41fOqf5LTLSmbZZeizk6-MQ@mail.gmail.com
Whole thread Raw
List pgsql-hackers
I see that various comments in xact.c talk about start and end callbacks, but only end seems to be implemented at the moment. I also can't find any discussion about start of transaction callbacks in the mailing list archives. Would a patch in this direction be of interest?

I was looking at this based on the discussion around extended transaction logging for audit tools [1], there is another possible use of this session information - in logical replication. There is a pattern among the users of various logical replication / CDC of using user identity, application identity or session flags as a way to suppress the logical replication of some transactions. The primary interest seems to be in suppressing the logical replication of bulk load or bulk update operations which are dual-loaded into the two databases from a common source.

The existing infrastructure of XactCallback and pg_logical_emit_message() seems to provide what's needed to tie this together, but only at the end (COMMIT, ROLLBACK, PREPARE) of a transaction. It would be great for the logical replication plugin to be able to make a decision at the start of a large transaction to discard the transaction's content before incurring the cost of staging the content and/or rolling back.

Thanks
Alastair


pgsql-hackers by date:

Previous
From: jian he
Date:
Subject: Re: Extended Statistics set/restore/clear functions.
Next
From: Andres Freund
Date:
Subject: Re: Interrupts vs signals