Re: Logical replication - schema change not invalidating the relation cache
Dilip Kumar <dilipbalaut@gmail.com>
From: Dilip Kumar <dilipbalaut@gmail.com>
To: vignesh C <vignesh21@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-07-02T06:33:38Z
Lists: pgsql-hackers
On Fri, Jul 2, 2021 at 11:11 AM vignesh C <vignesh21@gmail.com> wrote: > > Hi, > > I found a strange behavior when there is an insert after renaming the > schema. The test steps for the same are given below, Here after the > schema is renamed, the renamed schema table data should not be sent, > but the data was being sent. I felt the schema invalidation was not > called, attached a patch to handle the same. Thoughts? > > step 1) > Create schema sch1; > Create table sch1.t1(c1 int); > CREATE PUBLICATION mypub1 FOR all tables; > > Step 2) > CREATE SCHEMA sch1; > CREATE TABLE sch1.t1(c1 int); > CREATE SCHEMA sch2; > CREATE TABLE sch2.t1(c1 int); > CREATE TABLE t1(c1 int); > CREATE SUBSCRIPTION mysub1 CONNECTION 'host=localhost port=5432 > dbname=postgres' PUBLICATION mypub1; > > Step 3) > begin; > insert into sch1.t1 values(1); > alter schema sch1 rename to sch2; > create schema sch1; > create table sch1.t1(c1 int); > insert into sch1.t1 values(2); > insert into sch2.t1 values(3); > commit; > > step 4) > select * from sch1.t1; # In subscriber > Got: > c1 > ---- > 1 > 2 > 3 > (3 rows) > > Expected: > c1 > ---- > 1 > 2 > (2 rows) Yeah, this looks like a bug. I will look at the patch. -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com
Commits
-
Invalidate pgoutput's replication-decisions cache upon schema rename.
- cd4b2334db49 16.0 landed
-
Add wait_for_subscription_sync for TAP tests.
- 0c20dd33db16 16.0 cited
-
Unify PostgresNode's new() and get_new_node() methods
- 201a76183e20 15.0 cited