> Can you put a comment why we need to get the GetLatestSnapshot()? Per my
> understanding it's for observing tuples which are updated by concurrent 
> transactions.
> I initially wondered it may break the transaction isolation level REPEATABLE 
> READ
> and the function should return false: but this can lose changes from the 
> publisher.

+1. With default_transaction_isolation = SERIALIZABLE, the patch also
takes SIREAD locks and can cause the apply worker to fail with
serialization failures because of that. I am not 100% sure this is a
new issue or if it can happen in different ways, but it doesn't seem
intended or useful.

See the attached claude-generated test case.

Attachment: 041_apply_search_serializable.pl
Description: Binary data

Reply via email to