On Wed, Sep 21, 2022 at 8:24 PM Jonathan S. Katz <jk...@postgresql.org> wrote: > > On 9/21/22 10:24 AM, Alvaro Herrera wrote: > > On 2022-Sep-20, Robert Haas wrote: > > > >>> I don't think we should change this behavior that's already in logical > >>> replication. While I understand the reasons why "GRANT ... ALL TABLES IN > >>> SCHEMA" has a different behavior (i.e. it's not applied to future > >>> objects) and do not advocate to change it, I have personally been > >>> affected where I thought a permission would be applied to all future > >>> objects, only to discover otherwise. I believe it's more intuitive to > >>> think that "ALL" applies to "everything, always." > >> > >> Nah, there's room for multiple behaviors here. It's reasonable to want > >> to add all the tables currently in the schema to a publication (or > >> grant permissions on them) and it's reasonable to want to include all > >> current and future tables in the schema in a publication (or grant > >> permissions on them) too. The reason I don't like the ALL TABLES IN > >> SCHEMA syntax is that it sounds like the former, but actually is the > >> latter. Based on your link to the email from Tom, I understand now the > >> reason why it's like that, but it's still counterintuitive to me. > > > > I already proposed elsewhere that we remove the ALL keyword from there, > > which I think serves to reduce confusion (in particular it's no longer > > parallel to the GRANT one). As in the attached. >
Thanks for working on this. > [personal, not RMT hat] > > I'd be OK with this. It would still allow for "FOR SEQUENCES IN SCHEMA" etc. > I also think this is reasonable. It can later be extended to have an option to exclude/include future tables with a publication option. Also, if we want to keep it compatible with FOR ALL TABLES syntax, we can later add ALL as an optional keyword in the syntax. -- With Regards, Amit Kapila.