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.
[personal, not RMT hat]
I'd be OK with this. It would still allow for "FOR SEQUENCES IN SCHEMA" etc.
Jonathan