TOAST needs to do at least minimal time-qual checking in order not to
Tom Lane <tgl@sss.pgh.pa.us>
TOAST needs to do at least minimal time-qual checking in order not to mess up after an aborted VACUUM FULL, per today's pghackers discussion. Add a suitable HeapTupleSatisfiesToast routine. Remove useless special- case test in HeapTupleSatisfiesVisibility macro for xmax = BootstrapTransactionId; perhaps that was needed at one time, but it's a waste of cycles now, not to mention actively wrong for SnapshotAny. Along the way, add some much-needed comments to tqual.c, and simplify toast_fetch_datum, which no longer needs to assume it may see chunks out-of-order.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/heap/tuptoaster.c | modified | +22 −26 |
| src/backend/utils/time/tqual.c | modified | +115 −13 |
| src/include/utils/tqual.h | modified | +21 −20 |