On Fri, Sep 25, 2020 at 8:12 AM Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Thu, Sep 24, 2020 at 6:33 PM Ashutosh Sharma <ashu.coe...@gmail.com> wrote: > > > > Hi Amit, > > > > > Here, I think instead of using MySubscription->stream, we should use > > > server/walrecv version number as we used at one place in tablesync.c. > > > > Should subscribers be setting the LR protocol value based on what is > > the publisher version it is communicating with or should it be set > > based on whether streaming was enabled or not while creating that > > subscription? AFAIU if we set this value based on the publisher > > version (which is lets say >= 14), then it's quite possible that the > > subscriber will start streaming changes for the in-progress > > transactions even if the streaming was disabled while creating the > > subscription, won't it? > > > > No that won't happen because we send this option to the server > (publisher in this case) only when version is >=14 and user has > specified this option. See the below check in function > libpqrcv_startstreaming() > { > .. > if (options->proto.logical.streaming && > PQserverVersion(conn->streamConn) >= 140000) > appendStringInfo(&cmd, ", streaming 'on'"); > .. > }
Ok, I have modified as per your suggestion. -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com
v4-0001-Bugfix-in-logical-protocol-version.patch
Description: Binary data