Re: table not found on publisher - Mailing list pgsql-general

From Radoslav Nedyalkov
Subject Re: table not found on publisher
Date
Msg-id CANhtRiYX3Xe5-rLCX0R2oagqf-nHc9dSWhzAqZ3+O5D8ww_+FQ@mail.gmail.com
Whole thread Raw
In response to table not found on publisher  (Radoslav Nedyalkov <rnedyalkov@gmail.com>)
Responses Re: table not found on publisher  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general
Just an update.
If the target is upgraded to pg13 then the initial copy goes fine.
Unfortunately it is a 40T db in a sunset, so we'd rather won't upgrade.

On Fri, Feb 11, 2022 at 4:50 PM Radoslav Nedyalkov <rnedyalkov@gmail.com> wrote:
Hello All,
It is a bit specific logical replication setup where we try to replicate
a partitioned table (pg14.1) to a non-partitioned one (pg11.14)

After establishing everything the subscriber fails on the initial copy with
ERROR:  table "public.tab01" not found on publisher

If the subscription is created with (copy_data=false) changes are propagated okay.

So I'm puzzled. Any comments ?

Thanks a lot
Rado

Here is the example:
SOURCE:
test[14.1]=# CREATE TABLE tab01 (id int PRIMARY KEY) PARTITION BY RANGE(id);
CREATE TABLE
test[14.1]=# CREATE TABLE tab01_10 PARTITION OF tab01 FOR VALUES FROM (0) TO (10);
CREATE TABLE
test[14.1]=# CREATE TABLE tab01_20 PARTITION OF tab01 FOR VALUES FROM (10) TO (20);
CREATE TABLE
test[14.1]=# insert into tab01 values (generate_series(1,15));
INSERT 0 15
test[14.1]=# CREATE PUBLICATION pub01 FOR TABLE public.tab01 WITH (publish_via_partition_root = true);
CREATE PUBLICATION
test[14.1]=# 

TARGET:
test[11.14]=# CREATE TABLE tab01 (id int PRIMARY KEY);
CREATE TABLE
test[11.14]=# create subscription sub01
connection 'host=/var/run/postgresql port=5435 dbname=test user=postgres'
publication pub01 ;
NOTICE:  created replication slot "sub01" on publisher
CREATE SUBSCRIPTION
test[11.14]=# 


pgsql-general by date:

Previous
From: Julien Rouhaud
Date:
Subject: Re: PostgreSQL extensions during switchover
Next
From: Emanuel Calvo
Date:
Subject: Re: Babelfish for PostgreSQL