Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Correct _bt_delitems_vacuum() lock comments.
authorPeter Geoghegan <pg@bowt.ie>
Thu, 2 Jan 2020 21:30:40 +0000 (13:30 -0800)
committerPeter Geoghegan <pg@bowt.ie>
Thu, 2 Jan 2020 21:30:40 +0000 (13:30 -0800)
The expectation within _bt_delitems_vacuum() is that caller has a
super-exclusive/cleanup buffer lock (not just a pin and a write lock).

src/backend/access/nbtree/nbtpage.c

index 52a214ed9744b601c9a7cac3ad0e6647744ce10a..73d28d37a3fc6717e544bfcc9eda62dca6ff9aae 100644 (file)
@@ -967,8 +967,9 @@ _bt_page_recyclable(Page page)
  * non-leaf page has to be done as part of an atomic action that includes
  * deleting the page it points to.
  *
- * This routine assumes that the caller has pinned and locked the buffer.
- * Also, the given deletable array *must* be sorted in ascending order.
+ * This routine assumes that the caller has a super-exclusive write lock on
+ * the buffer.  Also, the given deletable array *must* be sorted in ascending
+ * order.
  *
  * We record VACUUMs and b-tree deletes differently in WAL.  Deletes must
  * generate recovery conflicts by accessing the heap inline, whereas VACUUMs
@@ -1049,8 +1050,9 @@ _bt_delitems_vacuum(Relation rel, Buffer buf,
  *
  * As above, must only be used on leaf pages.
  *
- * This routine assumes that the caller has pinned and locked the buffer.
- * Also, the given itemnos *must* appear in increasing order in the array.
+ * This routine assumes that the caller has pinned and write locked the
+ * buffer.  Also, the given itemnos *must* appear in increasing order in the
+ * array.
  *
  * This is nearly the same as _bt_delitems_vacuum as far as what it does to
  * the page, but it needs to generate its own recovery conflicts by accessing