Skip to content

Commit e085789

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 a63aef5 commit e085789

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/backend/access/hash/hashsort.c

+3
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ _h_indexbuild(HSpool *hspool, Relation heapRel)
146146

147147
_hash_doinsert(hspool->index, itup, heapRel);
148148

149+
/* allow insertion phase to be interrupted, and track progress */
150+
CHECK_FOR_INTERRUPTS();
151+
149152
pgstat_progress_update_param(PROGRESS_CREATEIDX_TUPLES_DONE,
150153
++tups_done);
151154
}

0 commit comments

Comments
 (0)