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

Reply via email to