Re: Added schema level support for publication.
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Amit Kapila <amit.kapila16@gmail.com>
Cc: Peter Smith <smithpb2250@gmail.com>,
Peter Eisentraut <peter.eisentraut@enterprisedb.com>,
Masahiko Sawada <sawada.mshk@gmail.com>,
vignesh C <vignesh21@gmail.com>,
"tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>,
Greg Nancarrow <gregn4422@gmail.com>,
Ajin Cherian <itsajin@gmail.com>,
"houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com>,
Rahila Syed <rahilasyed90@gmail.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Date: 2021-08-17T13:25:30Z
Lists: pgsql-hackers
Amit Kapila <amit.kapila16@gmail.com> writes: > On Tue, Aug 17, 2021 at 6:40 AM Peter Smith <smithpb2250@gmail.com> wrote: >> On Mon, Aug 16, 2021 at 11:31 PM Tom Lane <tgl@sss.pgh.pa.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
Commits
-
Include schema/table publications even with exclude options in dump.
- 4aa6fa3cd0a2 18.0 landed
-
Rename some enums to use TABLE instead of REL.
- b3812d0b9bcf 15.0 landed
-
Add tap tests for the schema publications.
- 6b0f6f79eef2 15.0 landed
-
Allow publishing the tables of schema.
- 5a2832465fd8 15.0 landed
-
In pg_dump, use simplehash.h to look up dumpable objects by OID.
- 92316a4582a5 15.0 cited