Re: Logical replication from PG v13 and below to PG v14 (devel version) is not working.
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Dilip Kumar <dilipbalaut@gmail.com>
Cc: Ashutosh Sharma <ashu.coek88@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-09-24T11:15:46Z
Lists: pgsql-hackers
On Thu, Sep 24, 2020 at 4:31 PM Dilip Kumar <dilipbalaut@gmail.com> wrote: > > On Thu, Sep 24, 2020 at 11:55 AM Amit Kapila <amit.kapila16@gmail.com> wrote: > > > > On Tue, Sep 22, 2020 at 5:15 PM Dilip Kumar <dilipbalaut@gmail.com> wrote: > > > > > > On Tue, Sep 22, 2020 at 12:02 PM Amit Kapila <amit.kapila16@gmail.com> wrote: > > > > > > > > > > > > I am not sure if this suggestion makes it better than what is purposed > > > > by Dilip but I think we can declare them in define number order like > > > > below: > > > > #define LOGICALREP_PROTO_MIN_VERSION_NUM 1 > > > > #define LOGICALREP_PROTO_VERSION_NUM 1 > > > > #define LOGICALREP_PROTO_STREAM_VERSION_NUM 2 > > > > #define LOGICALREP_PROTO_MAX_VERSION_NUM LOGICALREP_PROTO_STREAM_VERSION_NUM > > > > > > Done this way. > > > > > > > - options.proto.logical.proto_version = LOGICALREP_PROTO_VERSION_NUM; > > + options.proto.logical.proto_version = MySubscription->stream ? > > + LOGICALREP_PROTO_STREAM_VERSION_NUM : LOGICALREP_PROTO_VERSION_NUM; > > > > Here, I think instead of using MySubscription->stream, we should use > > server/walrecv version number as we used at one place in tablesync.c. > > I am not sure how can we do this? > Have you checked what will function walrcv_server_version() will return? I was thinking that if we know that subscriber is connected to Publisher version < 14 then we can send the right value. -- With Regards, Amit Kapila.
Commits
-
Fix the logical replication from HEAD to lower versions.
- 079d0cacf4fe 14.0 landed
-
Add support for streaming to built-in logical replication.
- 464824323e57 14.0 cited