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