Skip to content
Snippets Groups Projects
Commit 1116108c authored by Peter Eisentraut's avatar Peter Eisentraut
Browse files

Handle change of slot name in logical replication apply

Since change of slot name is a supported operation, handle it more
gracefully, instead of in the this-should-not-happen way.

Author: Petr Jelinek <petr.jelinek@2ndquadrant.com>
parent 70da87d3
No related branches found
No related tags found
No related merge requests found
......@@ -1350,6 +1350,21 @@ reread_subscription(void)
proc_exit(0);
}
/*
* We need to make new connection to new slot if slot name has changed
* so exit here as well if that's the case.
*/
if (strcmp(newsub->slotname, MySubscription->slotname) != 0)
{
ereport(LOG,
(errmsg("logical replication worker for subscription \"%s\" will "
"restart because the replication slot name was changed",
MySubscription->name)));
walrcv_disconnect(wrconn);
proc_exit(0);
}
/*
* Exit if publication list was changed. The launcher will start
* new worker.
......@@ -1382,8 +1397,7 @@ reread_subscription(void)
}
/* Check for other changes that should never happen too. */
if (newsub->dbid != MySubscription->dbid ||
strcmp(newsub->slotname, MySubscription->slotname) != 0)
if (newsub->dbid != MySubscription->dbid)
{
elog(ERROR, "subscription %u changed unexpectedly",
MyLogicalRepWorker->subid);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment