RE: [PROPOSAL] Termination of Background Workers for ALTER/DROP DATABASE

Aya Iwata (Fujitsu) <iwata.aya@fujitsu.com>

From: "Aya Iwata (Fujitsu)" <iwata.aya@fujitsu.com>
To: 'Pavel Stehule' <pavel.stehule@gmail.com>, Michael Paquier <michael@paquier.xyz>
Cc: Peter Smith <smithpb2250@gmail.com>, Chao Li <li.evan.chao@gmail.com>, "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-12-15T12:56:22Z
Lists: pgsql-hackers

Attachments

Hi

Thank you for your review.

> From: Pavel Stehule <pavel.stehule@gmail.com> 
> Sent: Sunday, December 14, 2025 4:40 PM
> To: Michael Paquier <michael@paquier.xyz>
> Cc: Iwata, Aya/岩田 彩 <iwata.aya@fujitsu.com>; Peter Smith <smithpb2250@gmail.com>; Chao Li <li.evan.chao@gmail.com>; Kuroda, Hayato/黒田 隼人 <kuroda.hayato@fujitsu.com>; pgsql-hackers <pgsql-hackers@postgresql.org>
> Subject: Re: [PROPOSAL] Termination of Background Workers for ALTER/DROP DATABASE
> 
> +#define BGWORKER_EXIT_AT_DATABASE_CHANGE       0x0004 
> 
> I am checking this patch, and I think so used names can be little bit confusing
> 
> BGWORKER_EXIT_AT_DATABASE_CHANGE - it is used for disconnecting workers on the template database, and this database is not changing.
> 
> TerminateBgWorkersByDbOid - it doesn't terminate all workers, but only workers with some special flags
> 
> Maybe BGWORKER_INTERRUPTABLE and TerminateInterruptableBgWorkersByDbOid ?

Thank you for your advice.
I changed the name of a function and a flag. 

> Another question is if this cancellation should be implicit and should not require some special flag.
> 
> When I want to disconnect connections to database when I do drop, I have to use FORCE flag
> 
> 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.

Best Regards,
Aya Iwata