The following bug has been logged on the website:
Bug reference: 18754
Logged by: S.A.N
Email address: ua.san.alex@gmail.com
PostgreSQL version: 17.2
Operating system: MacOS
Description:
Logical replication cannot restart if the client sent a copyDone, because
the streamingDoneReceiving variable is not reassigned to false in function
StartLogicalReplication, this only happens when physical replication in
function StartReplication
https://github.com/postgres/postgres/blob/master/src/backend/replication/walsender.c#L906
I am writing a logical replication client, sometimes I need to exit copy
mode to send simple SQL queries.
I send copyDone, everything works correctly, I can perform SQL queries, but
then I need to return to replication mode, the START_REPLICATION command
will always completed immediately, because the streamingDoneReceiving
backend variable remains in true, I think it should be redefined in false
when starting logical replication.
Thanks.