Re: Add missing CHECK_FOR_INTERRUPTS in autovacuum catalog scan loops
Lakshmi N <lakshmin.jhs@gmail.com>
From: Lakshmi N <lakshmin.jhs@gmail.com>
To: Dapeng Wang <wangdp20191008@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2026-04-11T05:02:02Z
Lists: pgsql-hackers
Attachments
- v2-0001-Add-CHECK_FOR_INTERRUPTS-in-autovacuum-table-scannin.patch (application/octet-stream) patch v2-0001
Hi, On Fri, Apr 10, 2026 at 4:57 AM Dapeng Wang <wangdp20191008@gmail.com> wrote: > Lakshmi N <lakshmin.jhs@gmail.com> 于2026年4月10日周五 16:39写道: > >> Hi hackers, >> >> I noticed CFI is missing while scanning pg_class for RELKIND_RELATION and >> RELKIND_TOASTVALUE. On a database with several thousands of tables, these >> scans can take a noticeable amount of time. Attached a patch to address >> this. >> >> Regards, >> Lakshmi >> > Hi Lakshmi, > > The patch applies cleanly to HEAD and compiles without warnings. > make check passes (one unrelated ICU collation diff). > > The two CHECK_FOR_INTERRUPTS() additions in do_autovacuum() look > correct and are well-placed at the top of each loop iteration, > before any resources are acquired. > > I noticed there are other similar catalog scan loops in > autovacuum.c that also lack CHECK_FOR_INTERRUPTS(): > > - The pg_database scan loop around line 1854 > - The pg_class scan loop around line 3664 > > Should those be covered as well? > Updated the patch covering those two as well. Regards, Lakshmi >