Thread: [MASSMAIL]Regarding: Replication of TRUNCATE commands is not working

[MASSMAIL]Regarding: Replication of TRUNCATE commands is not working

From
Arvind Raghuwanshi
Date:
Hi,
I have tried to run the TRUNCATE command  and found out that it's not getting replicated using logical replication for pgsql.
I have also checked the schema change using pg_dump command but the schema change also not getting detected for TRUNCATE command.

However on pgsql logical replication doc page[1] , it's mentioned that Replication of TRUNCATE commands is supported.


Any idea how we can solve this?

Thanks
Arvind

Re: Regarding: Replication of TRUNCATE commands is not working

From
Laurenz Albe
Date:
On Tue, 2024-04-09 at 14:50 +0530, Arvind Raghuwanshi wrote:
> I have tried to run the TRUNCATE command  and found out that it's not getting replicated using logical replication
forpgsql. 
> I have also checked the schema change using pg_dump command but the schema change also not getting detected for
TRUNCATEcommand. 
>
> However on pgsql logical replication doc page[1] , it's mentioned that Replication of TRUNCATE commands is supported.
>
> [1] PostgreSQL: Documentation: 16: 31.6. Restrictions
>
> Any idea how we can solve this?

What PostgreSQL version are you using?  The feature was introduced in v11.
How exactly is the publication defined?  Perhaps TRUNCATE is excluded.

Yours,
Laurenz Albe



Re: Regarding: Replication of TRUNCATE commands is not working

From
Arvind Raghuwanshi
Date:
Hi Laurenz,
Thanks for the response
Question: What PostgreSQL version are you using?  The feature was introduced in v11.
Answer: I am using the 16.0 Postgresql version.
db1=> SELECT version();
                                               version
-----------------------------------------------------------------------------------------------------
 PostgreSQL 16.0 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit
(1 row)

Question: How exactly is the publication defined?  Perhaps TRUNCATE is excluded.
I am not using the subscribe/publication model . but i have created a replication slot on the source database and then i am calling below procedure to get the details from replication slot:
select data from pg_logical_slot_peek_changes('db1_slot', NULL, NULL, 'pretty-print', '1');

In the case of TRUNCATE , the above procedure does not show up any records. however this procedure shows up insert, update and delete events.

As you mentioned TRUNCATE is excluded, is there any way to exclude TRUNCATE ?

Thanks
Arvind

On Tue, Apr 9, 2024 at 4:08 PM Laurenz Albe <laurenz.albe@cybertec.at> wrote:
On Tue, 2024-04-09 at 14:50 +0530, Arvind Raghuwanshi wrote:
> I have tried to run the TRUNCATE command  and found out that it's not getting replicated using logical replication for pgsql.
> I have also checked the schema change using pg_dump command but the schema change also not getting detected for TRUNCATE command.
>
> However on pgsql logical replication doc page[1] , it's mentioned that Replication of TRUNCATE commands is supported.
>
> [1] PostgreSQL: Documentation: 16: 31.6. Restrictions
>
> Any idea how we can solve this?

What PostgreSQL version are you using?  The feature was introduced in v11.
How exactly is the publication defined?  Perhaps TRUNCATE is excluded.

Yours,
Laurenz Albe

Re: Regarding: Replication of TRUNCATE commands is not working

From
Adrian Klaver
Date:
On 4/9/24 05:07, Arvind Raghuwanshi wrote:
> Hi Laurenz,
> Thanks for the response
> Question: What PostgreSQL version are you using?  The feature was 
> introduced in v11.
> Answer: I am using the 16.0 Postgresql version.
> db1=> SELECT version();
>                                                 version
> -----------------------------------------------------------------------------------------------------
>   PostgreSQL 16.0 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 
> 7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit
> (1 row)
> 
> Question: How exactly is the publication defined?  Perhaps TRUNCATE is 
> excluded.
> I am not using the subscribe/publication model . but i have created a 

To be clear you have not done CREATE PUBLICATION on the source machine, 
correct?

What is the rest of your configuration per:

https://www.postgresql.org/docs/current/logical-replication-config.html

Also what exactly is being TRUNCTEd?


> replication slot on the source database and then i am calling below 
> procedure to get the details from replication slot:
> select data from pg_logical_slot_peek_changes('db1_slot', NULL, NULL, 
> 'pretty-print', '1');
> 
> In the case of TRUNCATE , the above procedure does not show up any 
> records. however this procedure shows up insert, update and delete events.
> 
> As you mentioned TRUNCATE is excluded, is there any way to exclude 
> TRUNCATE ?
> 
> Thanks
> Arvind
> 
> On Tue, Apr 9, 2024 at 4:08 PM Laurenz Albe <laurenz.albe@cybertec.at 
> <mailto:laurenz.albe@cybertec.at>> wrote:
> 
>     On Tue, 2024-04-09 at 14:50 +0530, Arvind Raghuwanshi wrote:
>      > I have tried to run the TRUNCATE command  and found out that it's
>     not getting replicated using logical replication for pgsql.
>      > I have also checked the schema change using pg_dump command but
>     the schema change also not getting detected for TRUNCATE command.
>      >
>      > However on pgsql logical replication doc page[1] , it's mentioned
>     that Replication of TRUNCATE commands is supported.
>      >
>      > [1] PostgreSQL: Documentation: 16: 31.6. Restrictions
>      >
>      > Any idea how we can solve this?
> 
>     What PostgreSQL version are you using?  The feature was introduced
>     in v11.
>     How exactly is the publication defined?  Perhaps TRUNCATE is excluded.
> 
>     Yours,
>     Laurenz Albe
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com