From: Tom Lane Date: Thu, 12 Feb 2004 05:39:55 +0000 (+0000) Subject: Check only live tuples for OID validity, to avoid issues after ALTER X-Git-Tag: REL8_0_0BETA1~1203 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7bed6df184e934bf3e3217ecbce9240051a733e3;p=postgresql Check only live tuples for OID validity, to avoid issues after ALTER TABLE. Per recent discussion. --- diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index a0dd09df21..760c10bcc8 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -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; diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c index 2d85b65293..1ce33e1045 100644 --- a/src/backend/commands/vacuumlazy.c +++ b/src/backend/commands/vacuumlazy.c @@ -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));