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'"); .. } -- With Regards, Amit Kapila.