Skip to content
Snippets Groups Projects
Commit 7bed6df1 authored by Tom Lane's avatar Tom Lane
Browse files

Check only live tuples for OID validity, to avoid issues after ALTER

TABLE.  Per recent discussion.
parent 1ecd035b
Branches
Tags
No related merge requests found
......@@ -13,7 +13,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.273 2004/02/10 03:42:43 tgl Exp $
* $PostgreSQL: pgsql/src/backend/commands/vacuum.c,v 1.274 2004/02/12 05:39:55 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -1178,6 +1178,14 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
Assert(tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED);
pgchanged = true;
}
/*
* Other checks...
*/
if (onerel->rd_rel->relhasoids &&
!OidIsValid(HeapTupleGetOid(&tuple)))
elog(WARNING, "relation \"%s\" TID %u/%u: OID is invalid",
relname, blkno, offnum);
break;
case HEAPTUPLE_RECENTLY_DEAD:
......@@ -1244,14 +1252,6 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
if (sv_infomask != tuple.t_data->t_infomask)
pgchanged = true;
/*
* Other checks...
*/
if (onerel->rd_rel->relhasoids &&
!OidIsValid(HeapTupleGetOid(&tuple)))
elog(WARNING, "relation \"%s\" TID %u/%u: OID is invalid",
relname, blkno, offnum);
if (tupgone)
{
ItemId lpp;
......
......@@ -31,7 +31,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.37 2004/02/10 03:42:44 tgl Exp $
* $PostgreSQL: pgsql/src/backend/commands/vacuumlazy.c,v 1.38 2004/02/12 05:39:55 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -336,6 +336,14 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
Assert(tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED);
pgchanged = true;
}
/*
* Other checks...
*/
if (onerel->rd_rel->relhasoids &&
!OidIsValid(HeapTupleGetOid(&tuple)))
elog(WARNING, "relation \"%s\" TID %u/%u: OID is invalid",
relname, blkno, offnum);
break;
case HEAPTUPLE_RECENTLY_DEAD:
......@@ -360,14 +368,6 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
if (sv_infomask != tuple.t_data->t_infomask)
pgchanged = true;
/*
* Other checks...
*/
if (onerel->rd_rel->relhasoids &&
!OidIsValid(HeapTupleGetOid(&tuple)))
elog(WARNING, "relation \"%s\" TID %u/%u: OID is invalid",
relname, blkno, offnum);
if (tupgone)
{
lazy_record_dead_tuple(vacrelstats, &(tuple.t_self));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment