RE: Added schema level support for publication.

tanghy.fnst@fujitsu.com <tanghy.fnst@fujitsu.com>

From: "tanghy.fnst@fujitsu.com" <tanghy.fnst@fujitsu.com>
To: vignesh C <vignesh21@gmail.com>, Rahila Syed <rahilasyed90@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-05-25T09:17:05Z
Lists: pgsql-hackers
On Monday, May 24, 2021 at 8:31 PM vignesh C <vignesh21@gmail.com> wrote:
> The earlier patch does not apply on the head. The v4 patch attached
> has the following changes:
> a) Rebased it on head. b) Removed pubschemas, pubtables columns and
> replaced it with pubtype in pg_publication table. c) List the schemas
> in describe publication. d) List the publication in list schemas. e)
> Add support for "FOR SCHEMA CURRENT_SCHEMA". f) Tab completion for
> "FOR SCHEMA" in create publication and alter publication. g) Included
> the newly added structure type to typedefs.lst

Thanks for your patch.

I ran "make check-world" after applying your patch but it failed on my machine. I saw the following log:
--------------
parallel group (2 tests):  subscription publication
     publication                  ... FAILED      108 ms
     subscription                 ... ok           87 ms


diff -U3 /home/fnst/data/postgresql_schema/postgresql/src/test/regress/expected/publication.out /home/fnst/data/postgresql_schema/postgresql/src/test/regress/results/publication.out
--- /home/fnst/data/postgresql_schema/postgresql/src/test/regress/expected/publication.out      2021-05-25 15:44:52.261683712 +0800
+++ /home/fnst/data/postgresql_schema/postgresql/src/test/regress/results/publication.out       2021-05-25 15:48:41.393672595 +0800
@@ -359,10 +359,10 @@
     "public"

 \dn public;
- List of schemas
-  Name  |  Owner
---------+---------
- public | vignesh
+List of schemas
+  Name  | Owner
+--------+-------
+ public | fnst
 Publications:
     "testpub3_forschema"
--------------

I think the owner of CURRENT_SCHEMA should not be written into publication.out because the result is related to the user. 
Maybe we can use "ALTER SCHEMA public OWNER TO owner" to change its default owner before this test case. Thoughts?

Regards
Tang

Commits

  1. Include schema/table publications even with exclude options in dump.

  2. Rename some enums to use TABLE instead of REL.

  3. Add tap tests for the schema publications.

  4. Allow publishing the tables of schema.

  5. In pg_dump, use simplehash.h to look up dumpable objects by OID.