From: Robert Haas <rhaas@postgresql.org>
Date: Wed, 18 Jan 2017 21:36:48 +0000 (-0500)
Subject: Improve comment in hashsearch.c.
X-Git-Tag: REL_10_BETA1~1081
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e37360d5df240443bb6e997d26d54f59146283fc;p=postgresql

Improve comment in hashsearch.c.

Typo fix from Mithun Cy; other improvements by me.
---

diff --git a/src/backend/access/hash/hashsearch.c b/src/backend/access/hash/hashsearch.c
index c0bdfe6f1f..a59ad6ff70 100644
--- a/src/backend/access/hash/hashsearch.c
+++ b/src/backend/access/hash/hashsearch.c
@@ -334,19 +334,20 @@ _hash_first(IndexScanDesc scan, ScanDirection dir)
 	so->hashso_bucket_buf = buf;
 
 	/*
-	 * If the bucket split is in progress, then while scanning the bucket
-	 * being populated, we need to skip tuples that are moved from bucket
-	 * being split.  We need to maintain the pin on bucket being split to
+	 * If a bucket split is in progress, then while scanning the bucket being
+	 * populated, we need to skip tuples that were copied from bucket being
+	 * split.  We also need to maintain a pin on the bucket being split to
 	 * ensure that split-cleanup work done by vacuum doesn't remove tuples
-	 * from it till this scan is done.  We need to main to maintain the pin on
+	 * from it till this scan is done.  We need to maintain a pin on the
 	 * bucket being populated to ensure that vacuum doesn't squeeze that
-	 * bucket till this scan is complete, otherwise the ordering of tuples
+	 * bucket till this scan is complete; otherwise, the ordering of tuples
 	 * can't be maintained during forward and backward scans.  Here, we have
-	 * to be cautious about locking order, first acquire the lock on bucket
-	 * being split, release the lock on it, but not pin, then acquire the lock
-	 * on bucket being populated and again re-verify whether the bucket split
-	 * still is in progress.  First acquiring lock on bucket being split
-	 * ensures that the vacuum waits for this scan to finish.
+	 * to be cautious about locking order: first, acquire the lock on bucket
+	 * being split; then, release the lock on it but not the pin; then,
+	 * acquire a lock on bucket being populated and again re-verify whether
+	 * the bucket split is still in progress.  Acquiring the lock on bucket
+	 * being split first ensures that the vacuum waits for this scan to
+	 * finish.
 	 */
 	if (H_BUCKET_BEING_POPULATED(opaque))
 	{