Improve XLOG_NO_TRAN related comments - Mailing list pgsql-patches

From Qingqing Zhou
Subject Improve XLOG_NO_TRAN related comments
Date
Msg-id Pine.LNX.4.58.0512241652450.4410@eon.cs
Whole thread Raw
Responses Re: Improve XLOG_NO_TRAN related comments
List pgsql-patches
The following patch improves XLOG_NO_TRAN related comments per discussion.

Regards,
Qingqing

---

Index: backend/access/transam/clog.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/access/transam/clog.c,v
retrieving revision 1.36
diff -c -r1.36 clog.c
*** backend/access/transam/clog.c    6 Dec 2005 23:08:32 -0000    1.36
--- backend/access/transam/clog.c    24 Dec 2005 21:51:12 -0000
***************
*** 370,378 ****
  /*
   * Write a ZEROPAGE xlog record
   *
!  * Note: xlog record is marked as outside transaction control, since we
!  * want it to be redone whether the invoking transaction commits or not.
!  * (Besides which, this is normally done just before entering a transaction.)
   */
  static void
  WriteZeroPageXlogRec(int pageno)
--- 370,376 ----
  /*
   * Write a ZEROPAGE xlog record
   *
!  * Note: This is normally done just before entering a transaction.
   */
  static void
  WriteZeroPageXlogRec(int pageno)
Index: backend/access/transam/multixact.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/access/transam/multixact.c,v
retrieving revision 1.15
diff -c -r1.15 multixact.c
*** backend/access/transam/multixact.c    6 Dec 2005 23:08:32 -0000    1.15
--- backend/access/transam/multixact.c    24 Dec 2005 21:51:12 -0000
***************
*** 1797,1805 ****
  /*
   * Write an xlog record reflecting the zeroing of either a MEMBERs or
   * OFFSETs page (info shows which)
-  *
-  * Note: xlog record is marked as outside transaction control, since we
-  * want it to be redone whether the invoking transaction commits or not.
   */
  static void
  WriteMZeroPageXlogRec(int pageno, uint8 info)
--- 1797,1802 ----
Index: backend/access/transam/xact.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/access/transam/xact.c,v
retrieving revision 1.216
diff -c -r1.216 xact.c
*** backend/access/transam/xact.c    22 Nov 2005 18:17:07 -0000    1.216
--- backend/access/transam/xact.c    24 Dec 2005 21:51:12 -0000
***************
*** 690,697 ****
           * 2004-08-10.
           *
           * (If it made no transaction-controlled XLOG entries, its XID appears
!          * nowhere in permanent storage, so no one else will ever care if it
!          * committed; so it doesn't matter if we lose the commit flag.)
           *
           * Note we only need a shared lock.
           */
--- 690,697 ----
           * 2004-08-10.
           *
           * (If it made no transaction-controlled XLOG entries, its XID appears
!          * nowhere in permanent data storage, so no one else will ever care if
!          * it committed; so it doesn't matter if we lose the commit flag.)
           *
           * Note we only need a shared lock.
           */
Index: backend/storage/smgr/smgr.c
===================================================================
RCS file: /projects/cvsroot/pgsql/src/backend/storage/smgr/smgr.c,v
retrieving revision 1.94
diff -c -r1.94 smgr.c
*** backend/storage/smgr/smgr.c    22 Nov 2005 18:17:21 -0000    1.94
--- backend/storage/smgr/smgr.c    24 Dec 2005 21:51:12 -0000
***************
*** 364,374 ****
      if (isRedo)
          return;

!     /*
!      * Make a non-transactional XLOG entry showing the file creation. It's
!      * non-transactional because we should replay it whether the transaction
!      * commits or not; if not, the file will be dropped at abort time.
!      */
      xlrec.rnode = reln->smgr_rnode;

      rdata.data = (char *) &xlrec;
--- 364,370 ----
      if (isRedo)
          return;

!     /* Make a non-transactional XLOG entry showing the file creation */
      xlrec.rnode = reln->smgr_rnode;

      rdata.data = (char *) &xlrec;
***************
*** 622,633 ****

      if (!isTemp)
      {
!         /*
!          * Make a non-transactional XLOG entry showing the file truncation.
!          * It's non-transactional because we should replay it whether the
!          * transaction commits or not; the underlying file change is certainly
!          * not reversible.
!          */
          XLogRecPtr    lsn;
          XLogRecData rdata;
          xl_smgr_truncate xlrec;
--- 618,624 ----

      if (!isTemp)
      {
!         /* Make a non-transactional XLOG entry showing the file truncation */
          XLogRecPtr    lsn;
          XLogRecData rdata;
          xl_smgr_truncate xlrec;
Index: include/access/xlog.h
===================================================================
RCS file: /projects/cvsroot/pgsql/src/include/access/xlog.h,v
retrieving revision 1.69
diff -c -r1.69 xlog.h
*** include/access/xlog.h    15 Oct 2005 02:49:42 -0000    1.69
--- include/access/xlog.h    24 Dec 2005 21:51:13 -0000
***************
*** 78,84 ****

  /*
   * Sometimes we log records which are out of transaction control.
!  * Rmgr may "or" XLOG_NO_TRAN into info passed to XLogInsert to indicate this.
   */
  #define XLOG_NO_TRAN            XLR_INFO_MASK

--- 78,90 ----

  /*
   * Sometimes we log records which are out of transaction control.
!  *
!  * Note: The non-transaction-controlled distinction is really not very
!  * useful. Vadim put it in originally because he may want to go to a
!  * REDO/UNDO approach, in which it would've been important to tell the
!  * difference (i.e., REDO always), but we never did that and probably
!  * never will. We've preserved the distinction because it seemed worthwhile
!  * from the standpoint of documentation and logical clarity.
   */
  #define XLOG_NO_TRAN            XLR_INFO_MASK


pgsql-patches by date:

Previous
From: Robert Treat
Date:
Subject: Re: default resource limits
Next
From: Bruce Momjian
Date:
Subject: New HIGHBIG and IS_HIGHBIT_SET defines