From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | Peter Smith <smithpb2250(at)gmail(dot)com>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, vignesh C <vignesh21(at)gmail(dot)com>, "tanghy(dot)fnst(at)fujitsu(dot)com" <tanghy(dot)fnst(at)fujitsu(dot)com>, Greg Nancarrow <gregn4422(at)gmail(dot)com>, Ajin Cherian <itsajin(at)gmail(dot)com>, "houzj(dot)fnst(at)fujitsu(dot)com" <houzj(dot)fnst(at)fujitsu(dot)com>, Rahila Syed <rahilasyed90(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com> |
Subject: | Re: Added schema level support for publication. |
Date: | 2021-08-17 13:25:30 |
Message-ID: | 1075092.1629206730@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> writes:
> On Tue, Aug 17, 2021 at 6:40 AM Peter Smith <smithpb2250(at)gmail(dot)com> wrote:
>> On Mon, Aug 16, 2021 at 11:31 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>>> 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.
>> That last bare "name" cpitem. looks like it would permit the following syntax:
>> CREATE PUBLICATION pub FOR a,b,c;
>> Was that intentional?
> I think so.
I had supposed that we could throw an error at the post-processing stage,
or alternatively default to assuming that such names are tables.
Now you could instead make the grammar work like
cpitem := ALL TABLES |
TABLE name [, ...] |
ALL TABLES IN SCHEMA name [, ...] |
ALL SEQUENCES |
SEQUENCE name [, ...] |
ALL SEQUENCES IN SCHEMA name [, ...]
which would result in a two-level-list data structure. I'm not sure
that this is better, as any sort of mistake would result in a very
uninformative generic "syntax error" from Bison. Errors out of a
post-processing stage could be more specific than that.
(Perhaps, though, we should *document* it like the latter way,
even if the actual implementation is more like the first way.)
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2021-08-17 13:35:50 | Re: ALTER TYPE vs extension membership (was Re: BUG #17144: Upgrade from v13 to v14 with the cube extension failed) |
Previous Message | Greg Nancarrow | 2021-08-17 13:22:18 | Re: Fix uninitialized variable access (src/backend/utils/mmgr/freepage.c) |