Rewrite hashbulkdelete() to make it amenable to new bucket locking
Tom Lane <tgl@sss.pgh.pa.us>
Rewrite hashbulkdelete() to make it amenable to new bucket locking scheme. A pleasant side effect is that it is *much* faster when deleting a large fraction of the indexed tuples, because of elimination of redundant hash_step activity induced by hash_adjscans. Various other continuing code cleanup.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/hash/hash.c | modified | +158 −20 |
| src/backend/access/hash/hashovfl.c | modified | +6 −9 |
| src/backend/access/hash/hashpage.c | modified | +10 −6 |
| src/backend/access/hash/hashsearch.c | modified | +14 −11 |
| src/backend/access/hash/hashutil.c | modified | +37 −23 |
| src/include/access/hash.h | modified | +6 −7 |