Re: Column Filtering in Logical Replication
Justin Pryzby <pryzby@telsasoft.com>
> @@ -5963,8 +5967,20 @@ describePublications(const char *pattern)
> {
> /* Get the tables for the specified publication */
> printfPQExpBuffer(&buf,
> - "SELECT n.nspname, c.relname\n"
> - "FROM pg_catalog.pg_class c,\n"
> + "SELECT n.nspname, c.relname, \n");
> + if (pset.sversion >= 150000)
> + appendPQExpBufferStr(&buf,
> + " CASE WHEN pr.prattrs IS NOT NULL THEN\n"
> + " pg_catalog.array_to_string"
> + "(ARRAY(SELECT attname\n"
> + " FROM pg_catalog.generate_series(0, pg_catalog.array_upper(pr.prattrs::int[], 1)) s,\n"
> + " pg_catalog.pg_attribute\n"
> + " WHERE attrelid = c.oid AND attnum = prattrs[s]), ', ')\n"
> + " ELSE NULL END AS columns");
> + else
> + appendPQExpBufferStr(&buf, "NULL as columns");
> + appendPQExpBuffer(&buf,
> + "\nFROM pg_catalog.pg_class c,\n"
> " pg_catalog.pg_namespace n,\n"
> " pg_catalog.pg_publication_rel pr\n"
> "WHERE c.relnamespace = n.oid\n"
I suppose this should use pr.prattrs::pg_catalog.int2[] ?
Did the DatumGetBool issue expose a deficiency in testing ?
I think the !am_partition path was never being hit.
--
Justin
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Doc: Explain about Column List feature.
- f98d07424523 16.0 landed
- 25996a82a446 15.0 landed
-
Doc: fix column list vs. replica identity rules.
- 376af686111e 16.0 landed
- ab3131880d8a 15.0 landed
-
Prohibit combining publications with different column lists.
- fd0b9dcebda7 15.0 cited
-
Fix the check to limit sync workers.
- be46985bed8a 10.21 landed
- a90de822e483 11.16 landed
- 59348fbdeb7b 12.11 landed
- 82d4a17a1750 13.7 landed
- c9dea58e2702 14.3 landed
- dd4ab6fd6528 15.0 landed
-
Wait for subscription to sync in t/031_column_list.sql
- 404f49338fef 15.0 landed
-
Move prattrs to the pg_publication_rel section in docs
- 41b00f8e601f 15.0 landed
-
Allow specifying column lists for logical replication
- 923def9a533a 15.0 landed
-
Fix row filters with multiple publications
- 5a079662256e 15.0 landed
-
Fix publish_as_relid with multiple publications
- 27fafee72d17 13.7 landed
- 677a1dc0ca0f 14.3 landed
- c91f71b9dc91 15.0 landed
-
Add some additional tests for row filters in logical replication.
- ceb57afd3ce1 15.0 cited
-
Add index on pg_publication_rel.prpubid
- 025b920a3d45 15.0 landed
-
Avoid using DefElemAction in AlterPublicationStmt
- 9623d8999603 15.0 landed
-
Small cleanups related to PUBLICATION framework code
- c9105dd3660f 15.0 landed
-
Add PublicationTable and PublicationRelInfo structs
- 0c6828fa987b 15.0 landed
-
Fix various concurrency issues in logical replication worker launching
- de4389712206 10.0 cited