Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
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)