]> granicus.if.org Git - postgresql/commitdiff
Update comments about progress reporting by index_drop
authorAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 18 Oct 2019 10:18:50 +0000 (07:18 -0300)
committerAlvaro Herrera <alvherre@alvh.no-ip.org>
Fri, 18 Oct 2019 10:28:08 +0000 (07:28 -0300)
MichaĆ«l Paquier complained that index_drop is requesting progress
reporting for non-obvious reasons, so let's add a comment to explain
why.

Discussion: https://postgr.es/m/20191017010412.GH2602@paquier.xyz

src/backend/catalog/index.c

index 4f546318087c72a3fe1694253f13a041043f5fec..345628c42b964c4f31932d3d0ff89fad40cfcd64 100644 (file)
@@ -2142,6 +2142,10 @@ index_drop(Oid indexId, bool concurrent, bool concurrent_lock_mode)
                 * possible if one of the transactions in question is blocked trying
                 * to acquire an exclusive lock on our table.  The lock code will
                 * detect deadlock and error out properly.
+                *
+                * Note: we report progress through WaitForLockers() unconditionally
+                * here, even though it will only be used when we're called by REINDEX
+                * CONCURRENTLY and not when called by DROP INDEX CONCURRENTLY.
                 */
                WaitForLockers(heaplocktag, AccessExclusiveLock, true);
 
@@ -2157,7 +2161,7 @@ index_drop(Oid indexId, bool concurrent, bool concurrent_lock_mode)
 
                /*
                 * Wait till every transaction that saw the old index state has
-                * finished.
+                * finished.  See above about progress reporting.
                 */
                WaitForLockers(heaplocktag, AccessExclusiveLock, true);