RE: Pgoutput not capturing the generated columns

Shinoda, Noriyoshi <noriyoshi.shinoda@hpe.com>

From: "Shinoda, Noriyoshi (SXD Japan FSI)" <noriyoshi.shinoda@hpe.com>
To: Daniel Gustafsson <daniel@yesql.se>, vignesh C <vignesh21@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, Peter Smith <smithpb2250@gmail.com>, Michael Paquier <michael@paquier.xyz>, "Shubham Khanna" <khannashubham1197@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, Rajendra Kumar Dangwal <dangwalrajendra888@gmail.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>, "euler@eulerto.com" <euler@eulerto.com>
Date: 2025-01-23T13:02:33Z
Lists: pgsql-hackers

Attachments

Hi, hackers.

Thanks for developing this great feature.
The documentation for the pg_publication catalog shows a 'pubgencols' column, but the actual column name is the 'pubgencols_type' column.
Also, the order of the columns in the documentation differs from the order of the columns in the actual pg_publication catalog.
The attached patch changes the column names and order in the documentation.

Regards,
Noriyoshi Shinoda
-----Original Message-----
From: Daniel Gustafsson <daniel@yesql.se> 
Sent: Thursday, January 23, 2025 9:45 PM
To: vignesh C <vignesh21@gmail.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>; Peter Smith <smithpb2250@gmail.com>; Michael Paquier <michael@paquier.xyz>; Shinoda, Noriyoshi (SXD Japan FSI) <noriyoshi.shinoda@hpe.com>; Shubham Khanna <khannashubham1197@gmail.com>; Masahiko Sawada <sawada.mshk@gmail.com>; Rajendra Kumar Dangwal <dangwalrajendra888@gmail.com>; pgsql-hackers@lists.postgresql.org; euler@eulerto.com
Subject: Re: Pgoutput not capturing the generated columns

> On 23 Jan 2025, at 13:19, vignesh C <vignesh21@gmail.com> wrote:

> When dumping from Postgres <=PG17 servers, the query generated for 
> pubgencols_type incorrectly included the macro name instead of the 
> macro value. This resulted in dump failures. This commit fixes the 
> issue by correctly specifying the macro value in the query. The 
> attached patch has the changes for the same.

I was just looking at the Xversion test failure on crake (which has the log entry below) when I saw your email.

pg_dump: error: query failed: ERROR: column "publish_gencols_none" does not exist LINE 1: ...elete, false AS pubtruncate, false AS pubviaroot, PUBLISH_GE...
^
pg_dump: detail: Query was: SELECT p.tableoid, p.oid, p.pubname, p.pubowner, p.puballtables, p.pubinsert, p.pubupdate, p.pubdelete, false AS pubtruncate, false AS pubviaroot, PUBLISH_GENCOLS_NONE AS pubgencols_type FROM pg_publication p
pg_dumpall: error: pg_dump failed on database "template1", exiting

Your patch seems like a reasonable fix.

--
Daniel Gustafsson

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Doc: Generated column replication.

  2. Rename pubgencols_type to pubgencols in pg_publication.

  3. Doc: Fix column name in pg_publication catalog.

  4. Fix buildfarm failure introduced by commit e65dbc9927.

  5. Change publication's publish_generated_columns option type to enum.

  6. Fix \dRp+ output when describing publications with a lower server version.

  7. Replicate generated columns when 'publish_generated_columns' is set.

  8. Doc: Update the behavior of generated columns in Logical Replication.

  9. Replicate generated columns when specified in the column list.

  10. Doc: Generated columns are skipped for logical replication.