public inbox for [email protected]  
help / color / mirror / Atom feed
From: Laurenz Albe <[email protected]>
To: yexiu-glory <[email protected]>
To: pgsql-general <[email protected]>
Subject: Re: Regarding logical replication issues with PostgreSQL versions 16 and above
Date: Fri, 18 Jul 2025 15:40:06 +0200
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>

On Fri, 2025-07-18 at 19:08 +0800, yexiu-glory wrote:
> I'm facing a problem here: our business requires logical data replication to other
> departments, but at the same time, sensitive fields need to be filtered out.
> Therefore, we used the column filtering function when creating logical replication.
> If we use `alter table table1 replica identity default;`, there is no issue at all.
> However, when encountering new business scenarios, we need to use the CSI columnar
> index function. Under the default setting, the synchronization delay of the CSI
> columnar index is severe. Therefore, we need to use `alter table table1 replica
> identity full;` so that the CSI columnar index can perform data comparison and only
> convert changed data when receiving data, thereby speeding up the data conversion
> efficiency of the CSI columnar index. However, after using `alter table table1
> replica identity full;`, updating the table will result in an error.
> ERROR: cannot update table "table1"
> DETAIL: The column list used by the publication does not cover the replica identity.
> So, is there any solution to this problem, or is there a better approach to
> accelerate the conversion efficiency of the CSI columnar index.

I cannot help with that CSI thing.

The only workaround I can think of is to create an index on the publisher that
contains all the columns you need in the replica identity and then using
that with ALTER TABLE ... REPLICA IDENTITY USING INDEX ...

Yours,
Laurenz Albe






reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected]
  Subject: Re: Regarding logical replication issues with PostgreSQL versions 16 and above
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox