RE: BUG #18644: ALTER PUBLICATION ... SET (publish_via_partition_root) wrong/undocumented behavior.

Hayato Kuroda (Fujitsu) <kuroda.hayato@fujitsu.com>

From: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
To: 'Amit Kapila' <amit.kapila16@gmail.com>
Cc: vignesh C <vignesh21@gmail.com>, Maxim Boguk <maxim.boguk@gmail.com>, "pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>
Date: 2024-10-23T09:59:21Z
Lists: pgsql-bugs

Attachments

Dear Amit,

Thanks for giving comments. PSA new version patch.

> +     <caution>
> +      <para>
> +       When the partition root table is specified as the replication target
> +       instead of its leaf tables, altering the
> +       <literal>publish_via_partition_root</literal> parameter during
> +       replication can cause data loss or duplication. This happens because
> +       the subscriber initially subscribed to the leaf tables.
> 
> This assumes that the user is always changing
> publish_via_partition_root from 'false' to 'true'. Can't she change
> from 'false' to 'true' as well?

Yeah, users can change for arbitrary directions, and the issue can happen in any
cases. Toggling the option changes the oid contained in the replication messages,
this causes a loss. I adjusted a description.

> +      <para>
> +       To prevent the issue, you can avoid modifying the partitioned table
> +       between the <command>ALTER PUBLICATION ... SET</command>
> and
> 
> Can't the problem happen when any of the leaf tables are modified? If
> so, that is not clear from the above statement.

Partition root table is a virtual object, and actual changes are done at its leaf.
Based on that "modifying the partitioned table" may be odd. How about "modifying
any leaf tables"?

Best regards,
Hayato Kuroda
FUJITSU LIMITED

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: Add a caution in alter publication.