Hi Pavel-san, >> So maybe there should be ALTER DATABASE ... RENAME ... FORCE - or if FORCE >> can terminare all workers (without special FLAG) ? > > For the proposed feature, we've added a flag allowing each extension > developer to decide whether to terminate it via DROP/ALTER DATABASE. > Adding a FORCE option to ALTER to let database definition modifiers decide > whether to force termination of background workers might be better discussed > in a separate thread. > > When I thought about it - there can be a second alternative. > > Introduce a pair of flags BGWORKER_INTERRUPTABLE and BGWORKER_PROTECTED (the > names can be enhanced or changed). BGWORKER_INTERRUPTABLE can be default. > ALTER DATABASE RENAME and related commands can stop any non protected > workers. ALTER DATABASE RENAME FORCE can stop any workers (including > protected).
I can't image any use cases for BGWORKER_PROTECTED. Do you have any idea? Also, I think the parameter settings might get a complicated. If we start discussing the "FORCE" option, it is better to think about this parameter. > Is there any reason why BGWORKER_INTERRUPTABLE cannot be default? Probably > nobody would block some possibly common operations on database level without > strong reason. As Michael-san mentioned in a previous email, this behavior has remained unchanged since bgworkers were introduced in v9.3. I don't see a compelling reason to alter it now. Additionally, this specification can be modified later. Best Regards, Aya Iwata
