Fixed misprint in heap update WALoging.
authorVadim B. Mikheev <vadim4o@yahoo.com>
Sat, 30 Dec 2000 06:52:34 +0000 (06:52 +0000)
committerVadim B. Mikheev <vadim4o@yahoo.com>
Sat, 30 Dec 2000 06:52:34 +0000 (06:52 +0000)
src/backend/access/heap/heapam.c
src/backend/access/transam/xlog.c

index 4de424598edc9ff0b563b7e85b42220365edd251..87b3e7090d5cf54c2c4de27d1f577f307360e531 100644 (file)
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *   $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.103 2000/12/28 13:00:06 vadim Exp $
+ *   $Header: /cvsroot/pgsql/src/backend/access/heap/heapam.c,v 1.104 2000/12/30 06:52:33 vadim Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -1665,6 +1665,10 @@ l2:
         * without reading log if xact will abort before update is logged.
         * In the event of crash prio logging, TQUAL routines will see
         * HEAP_XMAX_UNLOGGED flag...
+        *
+        * NOTE: this trick is useless currently but saved for future
+        * when we'll implement UNDO and will re-use transaction IDs
+        * after postmaster startup.
         */
        _locked_tuple_.node = relation->rd_node;
        _locked_tuple_.tid = *otid;
@@ -2066,7 +2070,7 @@ log_heap_update(Relation reln, Buffer oldbuf, ItemPointerData from,
        hsize += (2 * sizeof(TransactionId));
    }
    rdata[2].buffer = newbuf;
-   rdata[2].data = (char*)&xlhdr;
+   rdata[2].data = (char*)xlhdr;
    rdata[2].len = hsize;
    rdata[2].next = &(rdata[3]);
 
index ff8916cd37bc7eb654c266c00b24ea83ac111bd4..136ce1de7b054bc0c3e0f0ee3906b0b2431af1cb 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2000, PostgreSQL, Inc
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.46 2000/12/29 21:31:21 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v 1.47 2000/12/30 06:52:34 vadim Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -2243,9 +2243,24 @@ xlog_desc(char *buf, uint8 xl_info, char* rec)
 static void
 xlog_outrec(char *buf, XLogRecord *record)
 {
-   sprintf(buf + strlen(buf), "prev %u/%u; xprev %u/%u; xid %u: %s",
+   int     bkpb;
+   int     i;
+
+   sprintf(buf + strlen(buf), "prev %u/%u; xprev %u/%u; xid %u",
        record->xl_prev.xlogid, record->xl_prev.xrecoff,
        record->xl_xact_prev.xlogid, record->xl_xact_prev.xrecoff,
-       record->xl_xid, 
+       record->xl_xid);
+
+   for (i = 0, bkpb = 0; i < 2; i++)
+   {
+       if (!(record->xl_info & (XLR_SET_BKP_BLOCK(i))))
+           continue;
+       bkpb++;
+   }
+
+   if (bkpb)
+       sprintf(buf + strlen(buf), "; bkpb %d", bkpb);
+
+   sprintf(buf + strlen(buf), ": %s",
        RmgrTable[record->xl_rmid].rm_name);
 }