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