Skip to content

Commit fae55f0

Browse files
committed
Allow _h_indexbuild() to be interrupted.
When we are building a hash index that is large enough to need pre-sorting (larger than either maintenance_work_mem or NBuffers), the initial sorting phase is interruptible, but the insertion phase wasn't. Add the missing CHECK_FOR_INTERRUPTS(). Per bug #18616 from Alexander Lakhin. Back-patch to all supported branches. Pavel Borisov Discussion: https://postgr.es/m/18616-acbb9e5caf41e964@postgresql.org
1 parent 9a23967 commit fae55f0

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/backend/access/hash/hashsort.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,9 @@ _h_indexbuild(HSpool *hspool, Relation heapRel)
148148
/* the tuples are sorted by hashkey, so pass 'sorted' as true */
149149
_hash_doinsert(hspool->index, itup, heapRel, true);
150150

151+
/* allow insertion phase to be interrupted, and track progress */
152+
CHECK_FOR_INTERRUPTS();
153+
151154
pgstat_progress_update_param(PROGRESS_CREATEIDX_TUPLES_DONE,
152155
++tups_done);
153156
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy