Fix misuse of table_index_fetch_tuple_check().
Peter Geoghegan <pg@bowt.ie>
Fix misuse of table_index_fetch_tuple_check(). Commit 0d861bbb, which added deduplication to nbtree, had _bt_check_unique() pass a TID to table_index_fetch_tuple_check() that isn't safe to mutate. table_index_fetch_tuple_check()'s tid argument is modified when the TID in question is not the latest visible tuple in a hot chain, though this wasn't documented. To fix, go back to using a local copy of the TID in _bt_check_unique(), and update comments above table_index_fetch_tuple_check(). Backpatch: 13-, where B-Tree deduplication was introduced.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/nbtree/nbtinsert.c | modified | +2 −1 |
| src/backend/access/table/tableam.c | modified | +4 −0 |
| src/include/access/tableam.h | modified | +3 −1 |