]> granicus.if.org Git - postgresql/commitdiff
Check only live tuples for OID validity, to avoid issues after ALTER
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 12 Feb 2004 05:39:55 +0000 (05:39 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 12 Feb 2004 05:39:55 +0000 (05:39 +0000)
TABLE.  Per recent discussion.

src/backend/commands/vacuum.c
src/backend/commands/vacuumlazy.c

index a0dd09df215e835c636ab1d4847ba963c2589169..760c10bcc80841e7fbb49dd0de0c470e785a40a0 100644 (file)
@@ -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;
index 2d85b65293763e1d9827910d3a5f427ca073b322..1ce33e10458f96f6450c49d8537b2967f51f16b2 100644 (file)
@@ -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));