On Tue, Mar 22, 2022 at 12:39 PM vignesh C <vignes...@gmail.com> wrote: > > Hi, > > This feature adds an option to skip changes of all tables in specified > schema while creating publication. > This feature is helpful for use cases where the user wants to > subscribe to all the changes except for the changes present in a few > schemas. > Ex: > CREATE PUBLICATION pub1 FOR ALL TABLES SKIP ALL TABLES IN SCHEMA s1,s2; > OR > ALTER PUBLICATION pub1 ADD SKIP ALL TABLES IN SCHEMA s1,s2; > > A new column pnskip is added to table "pg_publication_namespace", to > maintain the schemas that the user wants to skip publishing through > the publication. Modified the output plugin (pgoutput) to skip > publishing the changes if the relation is part of skip schema > publication. > As a continuation to this, I will work on implementing skipping tables > from all tables in schema and skipping tables from all tables > publication. > > Attached patch has the implementation for this. > This feature is for the pg16 version. > Thoughts?
The feature seems to be useful especially when there are lots of schemas in a database. However, I don't quite like the syntax. Do we have 'SKIP' identifier in any of the SQL statements in SQL standard? Can we think of adding skip_schema_list as an option, something like below? CREATE PUBLICATION foo FOR ALL TABLES (skip_schema_list = 's1, s2'); ALTER PUBLICATION foo SET (skip_schema_list = 's1, s2'); - to set ALTER PUBLICATION foo SET (skip_schema_list = ''); - to reset Regards, Bharath Rupireddy.