Reinstate HEAP_XMAX_LOCK_ONLY|HEAP_KEYS_UPDATED as allowed
Alvaro Herrera <alvherre@alvh.no-ip.org>
Reinstate HEAP_XMAX_LOCK_ONLY|HEAP_KEYS_UPDATED as allowed Commit 866e24d47db1 added an assert that HEAP_XMAX_LOCK_ONLY and HEAP_KEYS_UPDATED cannot appear together, on the faulty assumption that the latter necessarily referred to an update and not a tuple lock; but that's wrong, because SELECT FOR UPDATE can use precisely that combination, as evidenced by the amcheck test case added here. Remove the Assert(), and also patch amcheck's verify_heapam.c to not complain if the combination is found. Also, out of overabundance of caution, update (across all branches) README.tuplock to be more explicit about this. Author: Julien Rouhaud <rjuju123@gmail.com> Reviewed-by: Mahendra Singh Thalor <mahi6run@gmail.com> Reviewed-by: Dilip Kumar <dilipbalaut@gmail.com> Discussion: https://postgr.es/m/20210124061758.GA11756@nol
Files
| Path | Change | +/− |
|---|---|---|
| contrib/amcheck/t/001_verify_heapam.pl | modified | +13 −1 |
| contrib/amcheck/verify_heapam.c | modified | +0 −7 |
| src/backend/access/heap/hio.c | modified | +3 −5 |
| src/backend/access/heap/README.tuplock | modified | +4 −3 |
Discussion
- Faulty HEAP_XMAX_LOCK_ONLY & HEAP_KEYS_UPDATED hintbit combination 17 messages · 2021-01-24 → 2021-02-23