On Thu, Nov 18, 2021 at 9:15 PM Mark Dilger <mark.dil...@enterprisedb.com> wrote: > > The prior version of the patch only picked up the change if it happened to > start a new worker, but could process multiple transactions without noticing > the change. Now, it is limited to finishing the current transaction. Would > you prefer that the worker noticed the change in ownership and aborted the > transaction on the subscriber side? Or should the ALTER SUBSCRIPTION..OWNER > TO block? I don't see much advantage to either of those options, but I also > don't think I have any knock-down argument for my approach either. What do > you think? >
How about allowing to change ownership only for disabled subscriptions? Basically, users need to first disable the subscription and then change its ownership. Now, disabling is an asynchronous operation but we won't allow the ownership change command to proceed unless the subscription is marked disabled and all the apply/sync workers are not running. After the ownership is changed, users can enable it. We already have 'slot_name' parameter's dependency on whether the subscription is marked enabled or not. This will add some steps in changing the ownership of a subscription but I think it will be predictable. -- With Regards, Amit Kapila.