Re: Added schema level support for publication.
Dilip Kumar <dilipbalaut@gmail.com>
From: Dilip Kumar <dilipbalaut@gmail.com>
To: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Cc: vignesh C <vignesh21@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-01-10T09:58:58Z
Lists: pgsql-hackers
On Sat, Jan 9, 2021 at 8:14 PM Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> wrote: > > On Sat, Jan 9, 2021 at 8:08 PM Bharath Rupireddy > <bharath.rupireddyforpostgres@gmail.com> wrote: > > I think this feature can be useful, in case a user has a lot of tables > > to publish inside a schema. Having said that, I wonder if this feature > > mandates users to create the same schema with same > > permissions/authorizations manually on the subscriber, because logical > > replication doesn't propagate any ddl's so are the schema or schema > > changes? Or is it that the list of tables from the publisher can go > > into a different schema on the subscriber? > > > > Since the schema can have other objects such as data types, functions, > > operators, I'm sure with your feature, non-table objects will be > > skipped. > > > > As Amit pointed out earlier, the behaviour when schema dropped, I > > think we should also consider when schema is altered, say altered to a > > different name, maybe we should change that in the publication too. > > > > In general, what happens if we have some temporary tables or foreign > > tables inside the schema, will they be allowed to send the data to > > subscribers? > > > > And, with this feature, since there can be many huge tables inside a > > schema, the initial table sync phase of the replication can take a > > while. > > > > Say a user has created a publication for a schema with hundreds of > > tables in it, at some point later, can he stop replicating a single or > > some tables from that schema? > > > > IMO, it's better to have the syntax - CREATE PUBLICATION > > production_publication FOR ALL TABLES IN SCHEMA production - just > > added IN between for all tables and schema. > > > > Say a user has a schema with 121 tables in it, and wants to replicate > > only 120 or 199 or even lesser tables out of it, so can we have some > > skip option to the new syntax, something like below? > > CREATE PUBLICATION production_publication FOR ALL TABLES SCHEMA > > production WITH skip = marketing, accounts, sales; --> meaning is, > > replicate all the tables in the schema production except marketing, > > accounts, sales tables. > > One more point - if the publication is created for a schema with no or > some initial tables, will all the future tables that may get added to > the schema will be replicated too? > I expect this should be the behavior. -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com
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