]> granicus.if.org Git - postgresql/commitdiff
Improve comment in hashsearch.c.
authorRobert Haas <rhaas@postgresql.org>
Wed, 18 Jan 2017 21:36:48 +0000 (16:36 -0500)
committerRobert Haas <rhaas@postgresql.org>
Wed, 18 Jan 2017 21:36:48 +0000 (16:36 -0500)
Typo fix from Mithun Cy; other improvements by me.

src/backend/access/hash/hashsearch.c

index c0bdfe6f1fb3be61f6c137e5da8dcd7291c76b03..a59ad6ff7079f2af0e491ceff37849e99fc79c91 100644 (file)
@@ -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))
        {