postgres.git / summary / log / commit / refs
commit 453f53821fa549d3e46c87a076fc7849fab9a948
Author: Robert Haas <rhaas@postgresql.org>
Date: Tue Mar 28 20:16:53 2023 +0000
First released in: 16.0, 14.8, 15.3
amcheck: In verify_heapam, allows tuples with xmin 0.
Commit e88754a1965c0f40a723e6e46d670cacda9e19bd caused that case
to be reported as corruption, but Peter Geoghegan pointed out that
it can legitimately happen in the case of a speculative insertion
that aborts, so we'd better not flag it as corruption after all.
Back-patch to v14, like the commit that introduced the issue.
Discussion: http://postgr.es/m/CAH2-WzmEabzcPTxSY-NXKH6Qt3FkAPYHGQSe2PtvGgj17ZQkCw@mail.gmail.com
contrib/amcheck/verify_heapam.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/contrib/amcheck/verify_heapam.c b/contrib/amcheck/verify_heapam.c
index 1d186d1e4de..4e3e87aa800 100644
--- a/contrib/amcheck/verify_heapam.c
+++ b/contrib/amcheck/verify_heapam.c
@@ -739,8 +739,7 @@ check_tuple_visibility(HeapCheckContext *ctx)
switch (get_xid_status(xmin, ctx, &xmin_status))
{
case XID_INVALID:
- report_corruption(ctx,
- pstrdup("xmin is invalid"));
+ /* Could be the result of a speculative insertion that aborted. */
return false;
case XID_BOUNDS_OK:
break;
[parent: bf5c4b3d9da6]