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:23:05 +0000 (07:23 -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 098732cc4a844f4260c9cb1d7428ed13e68a1984..c48ad93e28b164aa6eb80f427e23857d04f82235 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);