Re: Fix handling of unlogged tables in FOR ALL TABLES publications

From: Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>
To: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Fix handling of unlogged tables in FOR ALL TABLES publications
Date: 2019-03-14 02:30:12
Message-ID: 59e5a734-9e06-1035-385b-6267175819aa@lab.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2019/03/13 21:03, Peter Eisentraut wrote:
> If a FOR ALL TABLES publication exists, unlogged tables are ignored
> for publishing changes. But CheckCmdReplicaIdentity() would still
> check in that case that such a table has a replica identity set before
> accepting updates. That is useless, so check first whether the given
> table is publishable and skip the check if not.
>
> Example:
>
> CREATE PUBLICATION pub FOR ALL TABLES;
> CREATE UNLOGGED TABLE logical_replication_test AS SELECT 1 AS number;
> UPDATE logical_replication_test SET number = 2;
> ERROR: cannot update table "logical_replication_test" because it does
> not have a replica identity and publishes updates
>
> Patch attached.

An email on -bugs earlier this morning complains of the same problem but
for temporary tables.

https://www.postgresql.org/message-id/CAHOFxGr%3DmqPZXbAuoR7Nbq-bU4HxqVWHbTTUy5%3DPKQut_F0%3DXA%40mail.gmail.com

It seems your patch fixes their case too.

Thanks,
Amit

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2019-03-14 02:39:03 Re: pgsql: Add support for hyperbolic functions, as well as log10().
Previous Message Robert Haas 2019-03-14 02:22:44 Re: pgsql: Add support for hyperbolic functions, as well as log10().