]> granicus.if.org Git - postgresql/commitdiff
Fix comment, add Assert.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 4 Sep 2001 19:12:05 +0000 (19:12 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 4 Sep 2001 19:12:05 +0000 (19:12 +0000)
src/backend/commands/vacuum.c
src/backend/commands/vacuumlazy.c

index fe72ff96020f3d0e1c5c94e32d0007d3dab6aa34..991af5d5f353b8a68e11b0e1604d5bb5759192af 100644 (file)
@@ -13,7 +13,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.208 2001/08/26 16:55:59 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.209 2001/09/04 19:12:05 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1069,8 +1069,8 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
                                                                                          FreezeLimit))
                                        {
                                                tuple.t_data->t_xmin = FrozenTransactionId;
-                                               tuple.t_data->t_infomask &= ~HEAP_XMIN_INVALID;
-                                               tuple.t_data->t_infomask |= HEAP_XMIN_COMMITTED;
+                                               /* infomask should be okay already */
+                                               Assert(tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED);
                                                pgchanged = true;
                                        }
                                        break;
index f525ecaf36c609bfafad2d1b767bd27d0259b517..8351da5e7dfde8da3a2885fd1206b05e51c2656a 100644 (file)
@@ -31,7 +31,7 @@
  *
  *
  * IDENTIFICATION
- *       $Header: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v 1.5 2001/08/26 16:55:59 tgl Exp $
+ *       $Header: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v 1.6 2001/09/04 19:12:05 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -318,14 +318,21 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats,
                                        /*
                                         * Tuple is good.  Consider whether to replace its xmin
                                         * value with FrozenTransactionId.
+                                        *
+                                        * NB: Since we hold only a shared buffer lock here,
+                                        * we are assuming that TransactionId read/write
+                                        * is atomic.  This is not the only place that makes
+                                        * such an assumption.  It'd be possible to avoid the
+                                        * assumption by momentarily acquiring exclusive lock,
+                                        * but for the moment I see no need to.
                                         */
                                        if (TransactionIdIsNormal(tuple.t_data->t_xmin) &&
                                                TransactionIdPrecedes(tuple.t_data->t_xmin,
                                                                                          FreezeLimit))
                                        {
                                                tuple.t_data->t_xmin = FrozenTransactionId;
-                                               tuple.t_data->t_infomask &= ~HEAP_XMIN_INVALID;
-                                               tuple.t_data->t_infomask |= HEAP_XMIN_COMMITTED;
+                                               /* infomask should be okay already */
+                                               Assert(tuple.t_data->t_infomask & HEAP_XMIN_COMMITTED);
                                                pgchanged = true;
                                        }
                                        break;