On Mon, Sep 23, 2024 at 4:10 AM Peter Smith <smithpb2...@gmail.com> wrote: > > On Fri, Sep 20, 2024 at 2:26 PM Amit Kapila <amit.kapil...@gmail.com> wrote: > > > > On Fri, Sep 20, 2024 at 4:16 AM Peter Smith <smithpb2...@gmail.com> wrote: > > > > > > On Fri, Sep 20, 2024 at 3:26 AM Masahiko Sawada <sawada.m...@gmail.com> > > > wrote: > > > > > > > > On Thu, Sep 19, 2024 at 2:32 AM Amit Kapila <amit.kapil...@gmail.com> > > > > wrote: > > > > > > > > > > > > > > > Users can use a publication like "create publication pub1 for table > > > > > t1(c1, c2), t2;" where they want t1's generated column to be published > > > > > but not for t2. They can specify the generated column name in the > > > > > column list of t1 in that case even though the rest of the tables > > > > > won't publish generated columns. > > > > > > > > Agreed. > > > > > > > > I think that users can use the publish_generated_column option when > > > > they want to publish all generated columns, instead of specifying all > > > > the columns in the column list. It's another advantage of this option > > > > that it will also include the future generated columns. > > > > > > > > > > OK. Let me give some examples below to help understand this idea. > > > > > > Please correct me if these are incorrect. > > > > > > Examples, when publish_generated_columns=true: > > > > > > CREATE PUBLICATION pub1 FOR t1(a,b,gen2), t2 WITH > > > (publish_generated_columns=true) > > > t1 -> publishes a, b, gen2 (e.g. what column list says) > > > t2 -> publishes c, d + ALSO gen1, gen2 > > > > > > CREATE PUBLICATION pub1 FOR t1, t2(gen1) WITH > > > (publish_generated_columns=true) > > > t1 -> publishes a, b + ALSO gen1, gen2 > > > t2 -> publishes gen1 (e.g. what column list says) > > > > > > > These two could be controversial because one could expect that if > > "publish_generated_columns=true" then publish generated columns > > irrespective of whether they are mentioned in column_list. I am of the > > opinion that column_list should take priority the results should be as > > mentioned by you but let us see if anyone thinks otherwise. > > > > > > > > ====== > > > > > > The idea LGTM, although now the parameter name > > > ('publish_generated_columns') seems a bit misleading since sometimes > > > generated columns get published "irrespective of the option". > > > > > > So, I think the original parameter name 'include_generated_columns' > > > might be better here because IMO "include" seems more like "add them > > > if they are not already specified", which is exactly what this idea is > > > doing. > > > > > > > I still prefer 'publish_generated_columns' because it matches with > > other publication option names. One can also deduce from > > 'include_generated_columns' that add all the generated columns even > > when some of them are specified in column_list. > > > > Fair point. Anyway, to avoid surprises it will be important for the > precedence rules to be documented clearly (probably with some > examples), >
Yeah, one or two examples would be good, but we can have a separate doc patch that has clearly mentioned all the rules. -- With Regards, Amit Kapila.