Re: Added schema level support for publication. - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Added schema level support for publication.
Date
Msg-id 877603.1629120678@sss.pgh.pa.us
Whole thread Raw
In response to Re: Added schema level support for publication.  (Peter Smith <smithpb2250@gmail.com>)
Responses Re: Added schema level support for publication.  (Peter Smith <smithpb2250@gmail.com>)
Re: Added schema level support for publication.  (Amit Kapila <amit.kapila16@gmail.com>)
List pgsql-hackers
Peter Smith <smithpb2250@gmail.com> writes:
> Then the question from Peter E. [2] "Why can't I have a publication
> that publishes tables t1, t2, t3, *and* schemas s1, s2, s3." would
> have an intuitive solution like:

> CREATE PUBLICATION pub1
> FOR TABLE t1,t2,t3 AND
> FOR ALL TABLES IN SCHEMA s1,s2,s3;

That seems a bit awkward, since the existing precedent is
to use commas.  We shouldn't need more than one FOR noise-word,
either.  So I was imagining syntax more like, say,

    CREATE PUBLICATION pub1 FOR
      TABLE t1,t2,t3, ALL TABLES IN SCHEMA s1,s2,
          SEQUENCE seq1,seq2, ALL SEQUENCES IN SCHEMA s3,s4;

Abstractly it'd be

createpub := CREATE PUBLICATION pubname FOR cpitem [, ... ] [ WITH ... ]

cpitem := ALL TABLES |
          TABLE name |
          ALL TABLES IN SCHEMA name |
          ALL SEQUENCES |
          SEQUENCE name |
          ALL SEQUENCES IN SCHEMA name |
          name

The grammar output would need some post-analysis to attribute the
right type to bare "name" items, but that doesn't seem difficult.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Some RELKIND macro refactoring
Next
From: Magnus Hagander
Date:
Subject: Re: CI/windows docker vs "am a service" autodetection on windows