On thinking more about the initial design with a GUC-based approach, I
believe we already have a similar precedent where both a GUC and a
table/column-level property coexist. For example, the
default_toast_compression GUC allows setting a default compression
method globally, while users can still override it at the column level
during CREATE TABLE or ALTER TABLE. A similar approach could work in
our case as well.
Regarding the publication-level property, apart from the potential
data-integrity issues discussed earlier, I also have another concern.
If we introduce a publication-level fallback, we would effectively be
deciding what gets logged in WAL for a particular table (i.e., whether
to log REPLICA IDENTITY FULL) based on a publication parameter. This
does not seem quite right to me. Shouldn't WAL logging typically be
independent of publication configuration? Or do we already have a case
where WAL logging behavior depends on publication-level properties?
Thanks,
Shveta