]> granicus.if.org Git - postgresql/commit
Change hashscan.c to keep its list of active hash index scans in
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 7 Mar 2008 15:59:16 +0000 (15:59 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 7 Mar 2008 15:59:16 +0000 (15:59 +0000)
commit44851c93351e117de89a3d77b8993c0c717bb61d
tree9ff82dfcb67904f25db7c73385f4e780d4d9e5b1
parent04b5c11de37e4c525cd9f019ae2e1534fb6f8cda
Change hashscan.c to keep its list of active hash index scans in
TopMemoryContext, rather than scattered through executor per-query contexts.
This poses no danger of memory leak since the ResourceOwner mechanism
guarantees release of no-longer-needed items.  It is needed because the
per-query context might already be released by the time we try to clean up
the hash scan list.  Report by ykhuang, diagnosis by Heikki.

Back-patch to 8.0, where the ResourceOwner-based cleanup was introduced.
The given test case does not fail before 8.2, probably because we rearranged
transaction abort processing somehow; but this coding is undoubtedly risky
so I'll patch 8.0 and 8.1 anyway.
src/backend/access/hash/hashscan.c