Can postgres replication slot using pgoutput release multiple CDC records for a single update to a particular row - Mailing list pgsql-general

From Akashkiran Shivakumar
Subject Can postgres replication slot using pgoutput release multiple CDC records for a single update to a particular row
Date
Msg-id CADTnmPjcbW07j26AxdqAsMbSJEAdHtva7Kdazmo99twuF59whw@mail.gmail.com
Whole thread Raw
List pgsql-general
Hello, 
I have a postgres database (major version 13) and am doing CDC by using a replication slot with pgoutput. In our data lake, we see that there are multiple updates (3 in this case) happening to the same row as part of the same transaction. This doesn't make sense if we look at them as separate updates. The expectation was that the row was updated once and a single CDC record was pushed out.  I haven't completely ruled out whether multiple updates happened in that transaction but I wanted to ask the community if it is possible that a single update statement could spill over as multiple CDC update records by pgoutput / postgres ? 

If yes, could you possibly point to the testcases or code where this might happen? Any blogs or suggestions are welcome. LMK if you need further information

P.S: Each update seen in the data lake changes at least one field in the row. The entire row with all the columns are pushed out for the 3 updates seen in the data lake. From the application perspective, it makes sense if the 3 updates were merged into a single update record

Regards,
Akashkiran

pgsql-general by date:

Previous
From: Laurenz Albe
Date:
Subject: Re: Regarding logical replication issues with PostgreSQL versions 16and above
Next
From: Dominique Devienne
Date:
Subject: SET LOCAL ROLE inside SECURITY INVOKER (LANGUAGE plpgsql) function