Re: Add missing CHECK_FOR_INTERRUPTS in autovacuum catalog scan loops - Mailing list pgsql-hackers

From Dapeng Wang
Subject Re: Add missing CHECK_FOR_INTERRUPTS in autovacuum catalog scan loops
Date
Msg-id CAKx0Yhzmn=gdfsv7iZDZ1cjXqRLq0amUmESL83qjyxnFDqYVJQ@mail.gmail.com
Whole thread
In response to Re: Add missing CHECK_FOR_INTERRUPTS in autovacuum catalog scan loops  (Lakshmi N <lakshmin.jhs@gmail.com>)
Responses Re: Add missing CHECK_FOR_INTERRUPTS in autovacuum catalog scan loops
List pgsql-hackers
Lakshmi N <lakshmin.jhs@gmail.com> 于2026年4月11日周六 13:02写道:
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


Hi Lakshmi,

The updated patch now covers all four catalog scan loops.
Applies cleanly, compiles without warnings, and all 247
regression tests pass.

Regards,
Dapeng Wang 

pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: some extra warnings from MSVC
Next
From: Tom Lane
Date:
Subject: Re: some extra warnings from MSVC