On Wed, 12 Aug 2026 at 05:23, Shinya Kato <[email protected]> wrote:
>
> I see three ways to deal with this.
>
> Option A: detect the missing value in pgoutput_row_filter() and raise
> an error naming the table and the column, trading silent data loss for
> a loud failure. [...]
>
> Option B: when a table belongs to a publication with a row filter,
> make heap_update() log the whole old tuple, as it already does for
> REPLICA IDENTITY FULL. [...]
>
> Option C: document the restriction and leave the behavior alone. [...]

Or, an option D: Forbid the creation (and use) of filtered publication
table definitions for tables which contain a non-identity
varlena-typed column (i.e. the type's typlen is -1).

Publishing varlena identity columns is safe, and users can just avoid
including varlena columns when they add a filter; we should not allow
users to create publications of which we know ahead of time that the
data stream is likely to break on our side.

I think this option D can be backported, but would require some
pg_upgrade checks.

Kind regards,

Matthias van de Meent
Databricks (https://www.databricks.com)


Reply via email to