On Mon, Jan 13, 2025 at 8:27 PM Amit Kapila <amit.kapil...@gmail.com> wrote:
>
> On Mon, Jan 13, 2025 at 5:25 AM Peter Smith <smithpb2...@gmail.com> wrote:
> >
> > Future -- there probably need to be further clarifications/emphasis to
> > describe how the generated column replication feature only works for
> > STORED generated columns (not VIRTUAL ones), but IMO it is better to
> > address that separately *after* dealing with these missing
> > documentation patches.
> >
>
> I thought it was better to deal with the ambiguity related to the
> 'virtual' part first. I have summarized the options we have regarding
> this in an email [1]. I prefer to extend the current option to take
> values as 's', and 'n'. This will keep the room open to extending it
> with a new value 'v'. The primary reason to go this way is to avoid
> adding new options in the future. It is better to keep the number of
> subscription options under control. Do you have any preference?
>

Hi,

During my review of Vignesh's patch for the enum-version of
publish_generated_columns, I was thinking of yet another way to
specify which columns to replicate.

My idea below is analogous to the existing 'publish' option; Instead
of adding an option specific to generated column types why don't we
instead add a (string) option for controlling the publication of *all*
column types?

Synopsis:

publish_column_types = <col_types>[,...]
where <col_types> are 'normal', 'generated_stored', 'generated_virtual'.

The default value is 'normal', which just means everything that's not generated

~

This option would be overriding if a publication column list is
specified, same as the current implementation does.

~

And, just like the 'publish' option the effect is cumulative:

e.g.1. WITH (publish_column_types = 'normal') == default behavior.
publishes all normal columns same as PG17
e.g.2. WITH (publish_column_types = 'normal, generated_stored') ==
publishes all normal cols AND stored gencols
e.g.3. WITH (publish_column_types = 'generated_stored') == publishes
only the stored gencols and nothing else

Notice that some combinations (like example 3 above with a FOR ALL
TABLES) are not even possible using master, or Vignesh's patch. Maybe
having this extra flexibility is useful for someone?

~

Also, having a generic name 'publish_column_types' leaves this open to
be extended with more possible values in the future without
proliferating more publication options.

Thoughts?

======
Kind Regards,
Peter Smith.
Fujitsu Australia


Reply via email to