Hi hackers,

When doing a whole database vacuum, we scan pg_class to construct
a list of vacuumable tables. For each vacuumable table, we call
vacuum_is_permitted_for_relation() to check permissions. If a
concurrent drop happens, the pg_class_aclcheck() might report an
error because of failing to search the syscache:

ERROR:  relation with OID ****** does not exist

To fix it, we can use pg_class_aclcheck_ext() to detect the concurrent
drop and report a warning instead.

Note that a concurrent drop after constructing the list of vacuumable
tables is handled by vacuum_open_relation().

Thoughts?

--
Regards,
ChangAo Chen

Attachment: v1-0001-Handle-concurrent-drop-when-doing-whole-database-.patch
Description: Binary data

Reply via email to