On Thu, Mar 24, 2022 at 4:11 AM Tomas Vondra <tomas.von...@enterprisedb.com> wrote: > > On 3/21/22 12:28, Amit Kapila wrote: > > On Fri, Mar 18, 2022 at 8:13 PM Tomas Vondra > > <tomas.von...@enterprisedb.com> wrote: > >> > >> Ah, thanks for reminding me - it's hard to keep track of all the issues > >> in threads as long as this one. > >> > >> BTW do you have any opinion on the SET COLUMNS syntax? Peter Smith > >> proposed to get rid of it in [1] but I'm not sure that's a good idea. > >> Because if we ditch it, then removing the column list would look like this: > >> > >> ALTER PUBLICATION pub ALTER TABLE tab; > >> > >> And if we happen to add other per-table options, this would become > >> pretty ambiguous. > >> > >> Actually, do we even want to allow resetting column lists like this? We > >> don't allow this for row filters, so if you want to change a row filter > >> you have to re-add the table, right? > >> > > > > We can use syntax like: "alter publication pub1 set table t1 where (c2 > >> 10);" to reset the existing row filter. It seems similar thing works > > for column list as well ("alter publication pub1 set table t1 (c2) > > where (c2 > 10)"). If I am not missing anything, I don't think we need > > additional Alter Table syntax. > > > >> So maybe we should just ditch ALTER > >> TABLE entirely. > >> > > > > Yeah, I agree especially if my above understanding is correct. > > > > I think there's a gotcha that > > ALTER PUBLICATION pub SET TABLE t ... > > also removes all other relations from the publication, and it removes > and re-adds the table anyway. So I'm not sure what's the advantage? >
I think it could be used when the user has fewer tables and she wants to change the list of published tables or their row/column filters. I am not sure of the value of this to users but this was a pre-existing syntax. > Anyway, I don't see why we would need such ALTER TABLE only for column > filters and not for row filters - either we need to allow this for both > options or none of them. > +1. I think for now we can leave this new ALTER TABLE syntax and do it for both column and row filters together. -- With Regards, Amit Kapila.