> On Sep 10, 2022, at 4:17 PM, Robert Haas <robertmh...@gmail.com> wrote:
> 
>>> I don't understand why we
>>> used this ALL TABLES IN SCHEMA language.
>> 
>> The conversation, as I recall, was that "ADD SCHEMA foo" would only mean all 
>> tables in foo, until publication of other object types became supported, at 
>> which point "ADD SCHEMA foo" would suddenly mean more than it did before.  
>> People might find that surprising, so the "ALL TABLES IN" was intended to 
>> future-proof against surprising behavioral changes.
> 
> If I encountered this syntax in a vacuum, that's not what I would
> think. I would think that ADD ALL TABLES IN SCHEMA meant add all the
> tables in the schema to the publication one by one as individual
> objects

Yes, it appears the syntax was chosen to avoid one kind of confusion, but 
created another kind.  Per the docs on this feature:

  FOR ALL TABLES IN SCHEMA
  Marks the publication as one that replicates changes for all tables in the 
specified list of schemas, including tables created in the future.

Like you, I wouldn't expect that definition, given the behavior of GRANT with 
respect to the same grammatical construction.

—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company





Reply via email to