On Sun, Mar 16, 2025 at 12:59 AM Dean <ds.blue...@gmail.com> wrote: > > I'd like to propose an enhancement to PostgreSQL's logical replication > system: Deferred Replica Filtering (DRF). The goal of this feature is to > provide more granular control over which rows are replicated by applying > publication filters after the WAL decoding process, before sending data to > subscribers. > > Currently, PostgreSQL's logical replication filters apply deterministically. > Deferred filtering, however, operates after the WAL has been decoded, giving > it access to the complete row data and making filtering decisions based on > mutable values. Additionally, record columns may be omitted by the filter. > > This opens up several possibilities for granular control. Consider the > following examples: > Alice and Bob subscribe to changes on a table with RLS enabled, allowing CRUD > operations based on user's IDs. > 1. Alice needs to know the timestamp at which Bob updated the table. With > DRF, we can omit all columns except for the timestamp. > 2. Bob wants to track DELETEs on the table. Without DRF, Bob can see all > columns on any deleted row, potentially exposing complete records he > shouldn't be authorized to view. DRF can filter these rows out. > > Deferred replica filtering allows for session-specific, per-row, and > per-column filtering - features currently not supported by existing > replication filters, enhancing security and data privacy. >
We provide column lists [1] and row filters [2]. Doesn't that suffice the need, if not, kindly let us know what exactly you need with some examples. [1] - https://www.postgresql.org/docs/devel/logical-replication-col-lists.html [2] - https://www.postgresql.org/docs/devel/logical-replication-row-filter.html -- With Regards, Amit Kapila.