Re: Add missing CHECK_FOR_INTERRUPTS in autovacuum catalog scan loops
Dapeng Wang <wangdp20191008@gmail.com>
From: Dapeng Wang <wangdp20191008@gmail.com>
To: Lakshmi N <lakshmin.jhs@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2026-04-10T11:57:22Z
Lists: pgsql-hackers
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? Regards, Dapeng Wang