aboutsummaryrefslogtreecommitdiff
path: root/contrib/btree_gist/sql
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-10-20 20:47:31 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-10-20 20:47:31 +0000
commit13416a1f8f765f318680e210443a8ab25d177c11 (patch)
tree99b0c2e4f15b0312130e7f73e7eb649b66eca6ef /contrib/btree_gist/sql
parent4d1aaedac0b96da7f146498ef982c0b50d7408f2 (diff)
downloadpostgresql-13416a1f8f765f318680e210443a8ab25d177c11.tar.gz
postgresql-13416a1f8f765f318680e210443a8ab25d177c11.zip
Fix potential problem with btbulkdelete deleting an indexscan's current
item, if the page containing the current item is split while the indexscan is stopped and holds no read-lock on the page. The current item might move right onto a page that the indexscan holds no pin on. In the prior code this would allow btbulkdelete to reach and possibly delete the item, causing 'my bits moved right off the end of the world!' when the indexscan finally resumes. Fix by chaining read-locks to the right during _bt_restscan and requiring btbulkdelete to LockBufferForCleanup on every page it scans, not only those with deletable items. Per my pghackers message of 25-May-02. (Too bad no one could think of a better way.)
Diffstat (limited to 'contrib/btree_gist/sql')
0 files changed, 0 insertions, 0 deletions