Add comment about extract_autovac_opts not holding lock
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 21 Apr 2021 22:36:12 +0000 (18:36 -0400)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Wed, 21 Apr 2021 22:36:12 +0000 (18:36 -0400)
Per observation from Tom Lane.

Discussion: https://postgr.es/m/1901125.1617904665@sss.pgh.pa.us

src/backend/postmaster/autovacuum.c

index 83c584ddc8cd4b7687171b116c293d5406445519..d516df0ac5c7073f614f2f95bcd4597db53ba840 100644 (file)
@@ -2783,6 +2783,11 @@ deleted2:
  *
  * Given a relation's pg_class tuple, return the AutoVacOpts portion of
  * reloptions, if set; otherwise, return NULL.
+ *
+ * Note: callers do not have a relation lock on the table at this point,
+ * so the table could have been dropped, and its catalog rows gone, after
+ * we acquired the pg_class row.  If pg_class had a TOAST table, this would
+ * be a risk; fortunately, it doesn't.
  */
 static AutoVacOpts *
 extract_autovac_opts(HeapTuple tup, TupleDesc pg_class_desc)