Skip site navigation (1) Skip section navigation (2)

Improve XLOG_NO_TRAN related comments

From: Qingqing Zhou <zhouqq(at)cs(dot)toronto(dot)edu>
To: pgsql-patches(at)postgresql(dot)org
Subject: Improve XLOG_NO_TRAN related comments
Date: 2005-12-24 21:55:46
Message-ID: Pine.LNX.4.58.0512241652450.4410@eon.cs (view raw or flat)
Thread:
Lists: 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


Responses

pgsql-patches by date

Next:From: Bruce MomjianDate: 2005-12-25 02:14:11
Subject: New HIGHBIG and IS_HIGHBIT_SET defines
Previous:From: Andrew DunstanDate: 2005-12-24 17:18:45
Subject: Re: [PATCHES] default resource limits

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group