aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Geoghegan <pg@bowt.ie>2019-03-04 17:57:36 -0800
committerPeter Geoghegan <pg@bowt.ie>2019-03-04 17:57:36 -0800
commit35bc0ec7c800b303e0629913ac336924cf979dcc (patch)
tree055f0129a18b5571fb87a7d0ae7298aa6c4318cb /src
parent1638623f34b716cab8e260b11720466223fe2589 (diff)
downloadpostgresql-35bc0ec7c800b303e0629913ac336924cf979dcc.tar.gz
postgresql-35bc0ec7c800b303e0629913ac336924cf979dcc.zip
Note case where nbtree VACUUM finishes splits.
The nbtree README claims that VACUUM can never finish interrupted page splits by design. That isn't entirely accurate, though. Note an exception to the general rule. Discussion: https://postgr.es/m/CAH2-Wz=_Xvv8byzK_LvY4ci76OgsHCQzoKF7We8yG9waO7j6rA@mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/nbtree/README5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/access/nbtree/README b/src/backend/access/nbtree/README
index 3680e69b89a..b0b4ab8b766 100644
--- a/src/backend/access/nbtree/README
+++ b/src/backend/access/nbtree/README
@@ -476,7 +476,10 @@ inserting a downlink might require splitting a page, it might fail if you
run out of disk space. That would be bad during VACUUM - the reason for
running VACUUM in the first place might be that you run out of disk space,
and now VACUUM won't finish because you're out of disk space. In contrast,
-an insertion can require enlarging the physical file anyway.
+an insertion can require enlarging the physical file anyway. There is one
+minor exception: VACUUM finishes interrupted splits of internal pages when
+deleting their children. This allows the code for re-finding parent items
+to be used by both page splits and page deletion.
To identify missing downlinks, when a page is split, the left page is
flagged to indicate that the split is not yet complete (INCOMPLETE_SPLIT).