Avoid retaining conflict-related data when no tables are subscribed - Mailing list pgsql-hackers

Hi,

My colleague Nisha reported an issue to me off-list: dead tuples can't
be removed when retain_dead_tuples is enabled for a subscription with no tables.

This appears to stem from the inability to advance the non-removable transaction
ID when AllTablesyncsReady() returns false. Since this function returns false
when no tables are present, which leads to unnecessary data retention until a
table is added to the subscription.

Since dead tuples don't need to be retained when no tables are subscribed, here
is a patch to fix it, modifying AllTablesyncsReady() to allows no tables to be
treated as a ready state when explicitly requested.

Best Regards,
Hou zj

Attachment

pgsql-hackers by date:

Previous
From: Chao Li
Date:
Subject: Re: Identifying function-lookup failures due to argument name mismatches
Next
From: Chao Li
Date:
Subject: Re: Mark ItemPointer parameters as const in tuple/table lock functions