Обсуждение: pg15 beta2 bug:cause by logcial replation
pg_publication_tables
now provides information on column lists and row filters.
On Friday, July 1, 2022 11:35 AM 396934406@qq.com <396934406@qq.com> wrote: > hello,: > > i am jerome Peng, from pg15 beta2 changes since beta 1 , i test this item and found a error: > > ? pg_publication_tables now provides information on column lists and row filters. > > \c logical_src > create table tab1(id int primary key,info varchar); > create table tab2(id int primary key,info1 varchar,info2 varchar); > select pg_create_logical_replication_slot('logical_slot1','pgoutput'); > create publication pub_two for table tab1, tab2; > > \c logical_dest > create table tab1(id int primary key,info varchar); > create table tab2(id int primary key,info1 varchar,info2 varchar); > create subscription sub_two > connection 'hostaddr=127.0.0.1 port=1501 user=postgres dbname=logical_src' > publication pub_two with(create_slot='false',slot_name='logical_slot1'); > > ERROR: could not receive list of replicated tables from the publisher: ERROR: column t.attnames does not exist > LINE 2: , t.attnames Hi, I tried your reproduction steps but cannot get the same error. Can you please provide some more information about the version of publisher and subscriber you used ? Just to confirm, did you use the PG15 beta1 or earlier PG15 version as the publisher and use PG15 beta2 as the subscriber ? Best regards, Hou zj
"houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com> writes: > On Friday, July 1, 2022 11:35 AM 396934406@qq.com <396934406@qq.com> wrote: >> ERROR: could not receive list of replicated tables from the publisher: ERROR: column t.attnames does not exist >> LINE 2: , t.attnames > Just to confirm, did you use the PG15 beta1 or earlier PG15 version > as the publisher and use PG15 beta2 as the subscriber ? It looks to me like this was an attempt to replicate from 15beta1 to 15beta2, which would fail because commit fd0b9dceb imagines that any server reporting version >= 15 will have pg_publication_tables.attnames, even though that column was not there in beta1. I bitched about the ill-timing of that schema change at the time but was outvoted. At this point I think it's water over the dam. We could perhaps change that test in fetch_table_list(), but it'd require access to the source server's catversion, which I don't think is readily available. In any case, by the time we could provide a fix it'd be useless to testers of beta1; they'd have updated already by some other method. regards, tom lane
From: houzj.fnst@fujitsu.comDate: 2022-07-01 12:09To: 396934406@qq.comCC: pgsql-bugsSubject: RE: pg15 beta2 bug:cause by logcial replationOn Friday, July 1, 2022 11:35 AM 396934406@qq.com <396934406@qq.com> wrote:> hello,:>> i am jerome Peng, from pg15 beta2 changes since beta 1 , i test this item and found a error:>> ? pg_publication_tables now provides information on column lists and row filters.>> \c logical_src> create table tab1(id int primary key,info varchar);> create table tab2(id int primary key,info1 varchar,info2 varchar);> select pg_create_logical_replication_slot('logical_slot1','pgoutput');> create publication pub_two for table tab1, tab2;>> \c logical_dest> create table tab1(id int primary key,info varchar);> create table tab2(id int primary key,info1 varchar,info2 varchar);> create subscription sub_two> connection 'hostaddr=127.0.0.1 port=1501 user=postgres dbname=logical_src'> publication pub_two with(create_slot='false',slot_name='logical_slot1');>> ERROR: could not receive list of replicated tables from the publisher: ERROR: column t.attnames does not exist> LINE 2: , t.attnamesHi,I tried your reproduction steps but cannot get the same error.Can you please provide some more information about the versionof publisher and subscriber you used ?Just to confirm, did you use the PG15 beta1 or earlier PG15 versionas the publisher and use PG15 beta2 as the subscriber ?Best regards,Hou zj
"houzj.fnst@fujitsu.com" <houzj.fnst@fujitsu.com> writes:> On Friday, July 1, 2022 11:35 AM 396934406@qq.com <396934406@qq.com> wrote:>> ERROR: could not receive list of replicated tables from the publisher: ERROR: column t.attnames does not exist>> LINE 2: , t.attnames> Just to confirm, did you use the PG15 beta1 or earlier PG15 version> as the publisher and use PG15 beta2 as the subscriber ?It looks to me like this was an attempt to replicate from 15beta1 to15beta2, which would fail because commit fd0b9dceb imagines that anyserver reporting version >= 15 will have pg_publication_tables.attnames,even though that column was not there in beta1.I bitched about the ill-timing of that schema change at the timebut was outvoted. At this point I think it's water over the dam.We could perhaps change that test in fetch_table_list(), but it'drequire access to the source server's catversion, which I don't thinkis readily available. In any case, by the time we could provide a fixit'd be useless to testers of beta1; they'd have updated already bysome other method.regards, tom lane
Hi,
> $ /opt/pg15-beta2/bin/psql -p1502
> psql (15beta2)
> Type "help" for help.
>
> postgres=# drop database logical_src;
> DROP DATABASE
> postgres=# drop database logical_dest ;
> DROP DATABASE
> postgres=# select version();
> version
> ------------------------------------------------------------------------------------------------------------
> PostgreSQL 15beta2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit
> (1 row)
Hmm, if both publisher and subscriber are on PG 15beta2, I am not sure why you get this error.
Can you please try to Initdb a new database and try the reproduction steps again ? It’s
possible that there is something wrong when initializing the database.
Best regards,
Hou zj
From: 396934406@qq.com <396934406@qq.com>
Sent: Friday, July 1, 2022 2:37 PM
To: Hou, Zhijie <houzj.fnst@fujitsu.com>
Cc: pgsql-bugs <pgsql-bugs@lists.postgresql.org>
Subject: Re: RE: pg15 beta2 bug:cause by logcial replation
$ /opt/pg15-beta2/bin/psql -p1502
psql (15beta2)
Type "help" for help.
postgres=# drop database logical_src;
DROP DATABASE
postgres=# drop database logical_dest ;
DROP DATABASE
postgres=# select version();
version
------------------------------------------------------------------------------------------------------------
PostgreSQL 15beta2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit
(1 row)
postgres=# create database logical_src;
CREATE DATABASE
postgres=# create database logical_dest;
CREATE DATABASE
postgres=# \c logical_src
You are now connected to database "logical_src" as user "postgres".
logical_src=# create table tab1(id int primary key,info varchar);
CREATE TABLE
logical_src=# create table tab2(id int primary key,info1 varchar,info2 varchar);
CREATE TABLE
logical_src=# select pg_create_logical_replication_slot('logical_slot1','pgoutput');
pg_create_logical_replication_slot
------------------------------------
(logical_slot1,0/4976D9D8)
(1 row)
logical_src=# create publication pub_two for table tab1, tab2;
CREATE PUBLICATION
logical_src=# \c logical_dest
You are now connected to database "logical_dest" as user "postgres".
logical_dest=# create table tab1(id int primary key,info varchar);
CREATE TABLE
logical_dest=# create table tab2(id int primary key,info1 varchar,info2 varchar);
CREATE TABLE
logical_dest=# create subscription sub_two
logical_dest-# connection 'hostaddr=127.0.0.1 port=1501 user=postgres dbname=logical_src'
logical_dest-# publication pub_two with(create_slot='false',slot_name='logical_slot1');
ERROR: could not receive list of replicated tables from the publisher: ERROR: column t.attnames does not exist
LINE 2: , t.attnames
^
From: houzj.fnst@fujitsu.com
Date: 2022-07-01 12:09
To: 396934406@qq.com
CC: pgsql-bugs
Subject: RE: pg15 beta2 bug:cause by logcial replation
On Friday, July 1, 2022 11:35 AM 396934406@qq.com <396934406@qq.com> wrote:
> hello,:
>
> i am jerome Peng, from pg15 beta2 changes since beta 1 , i test this item and found a error:
>
> ? pg_publication_tables now provides information on column lists and row filters.
>
> \c logical_src
> create table tab1(id int primary key,info varchar);
> create table tab2(id int primary key,info1 varchar,info2 varchar);
> select pg_create_logical_replication_slot('logical_slot1','pgoutput');
> create publication pub_two for table tab1, tab2;
>
> \c logical_dest
> create table tab1(id int primary key,info varchar);
> create table tab2(id int primary key,info1 varchar,info2 varchar);
> create subscription sub_two
> connection 'hostaddr=127.0.0.1 port=1501 user=postgres dbname=logical_src'
> publication pub_two with(create_slot='false',slot_name='logical_slot1');
>
> ERROR: could not receive list of replicated tables from the publisher: ERROR: column t.attnames does not exist
> LINE 2: , t.attnames
Hi,
I tried your reproduction steps but cannot get the same error.
Can you please provide some more information about the version
of publisher and subscriber you used ?
Just to confirm, did you use the PG15 beta1 or earlier PG15 version
as the publisher and use PG15 beta2 as the subscriber ?
Best regards,
Hou zj
From: houzj.fnst@fujitsu.comDate: 2022-07-01 12:09To: 396934406@qq.comCC: pgsql-bugsSubject: RE: pg15 beta2 bug:cause by logcial replationOn Friday, July 1, 2022 11:35 AM 396934406@qq.com <396934406@qq.com> wrote:> hello,:>> i am jerome Peng, from pg15 beta2 changes since beta 1 , i test this item and found a error:>> ? pg_publication_tables now provides information on column lists and row filters.>> \c logical_src> create table tab1(id int primary key,info varchar);> create table tab2(id int primary key,info1 varchar,info2 varchar);> select pg_create_logical_replication_slot('logical_slot1','pgoutput');> create publication pub_two for table tab1, tab2;>> \c logical_dest> create table tab1(id int primary key,info varchar);> create table tab2(id int primary key,info1 varchar,info2 varchar);> create subscription sub_two> connection 'hostaddr=127.0.0.1 port=1501 user=postgres dbname=logical_src'> publication pub_two with(create_slot='false',slot_name='logical_slot1');>> ERROR: could not receive list of replicated tables from the publisher: ERROR: column t.attnames does not exist> LINE 2: , t.attnamesHi,I tried your reproduction steps but cannot get the same error.Can you please provide some more information about the versionof publisher and subscriber you used ?Just to confirm, did you use the PG15 beta1 or earlier PG15 versionas the publisher and use PG15 beta2 as the subscriber ?Best regards,Hou zj
From: houzj.fnst@fujitsu.comDate: 2022-07-01 12:09To: 396934406@qq.comCC: pgsql-bugsSubject: RE: pg15 beta2 bug:cause by logcial replationOn Friday, July 1, 2022 11:35 AM 396934406@qq.com <396934406@qq.com> wrote:> hello,:>> i am jerome Peng, from pg15 beta2 changes since beta 1 , i test this item and found a error:>> ? pg_publication_tables now provides information on column lists and row filters.>> \c logical_src> create table tab1(id int primary key,info varchar);> create table tab2(id int primary key,info1 varchar,info2 varchar);> select pg_create_logical_replication_slot('logical_slot1','pgoutput');> create publication pub_two for table tab1, tab2;>> \c logical_dest> create table tab1(id int primary key,info varchar);> create table tab2(id int primary key,info1 varchar,info2 varchar);> create subscription sub_two> connection 'hostaddr=127.0.0.1 port=1501 user=postgres dbname=logical_src'> publication pub_two with(create_slot='false',slot_name='logical_slot1');>> ERROR: could not receive list of replicated tables from the publisher: ERROR: column t.attnames does not exist> LINE 2: , t.attnamesHi,I tried your reproduction steps but cannot get the same error.Can you please provide some more information about the versionof publisher and subscriber you used ?Just to confirm, did you use the PG15 beta1 or earlier PG15 versionas the publisher and use PG15 beta2 as the subscriber ?Best regards,Hou zj