Even though I'd like to see full_page_writes go away before 8.1,
authorTom Lane
Fri, 8 Jul 2005 04:07:26 +0000 (04:07 +0000)
committerTom Lane
Fri, 8 Jul 2005 04:07:26 +0000 (04:07 +0000)
a minimum requirement is that it not completely break the system
meanwhile.  Put the test in the right place.

src/backend/access/transam/xlog.c

index 86e1e6878b8dcb62d39e163fa49a1a008660258f..f731dd66b7a6648a9716db900f69a1e203dcb6fe 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.207 2005/07/05 23:18:09 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.208 2005/07/08 04:07:26 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -595,9 +595,7 @@ begin:;
                {
                    /* OK, put it in this slot */
                    dtbuf[i] = rdt->buffer;
-                   /* If fsync is off, no need to backup pages. */
-                   if (fullPageWrites &&
-                       XLogCheckBuffer(rdt, &(dtbuf_lsn[i]), &(dtbuf_xlg[i])))
+                   if (XLogCheckBuffer(rdt, &(dtbuf_lsn[i]), &(dtbuf_xlg[i])))
                    {
                        dtbuf_bkp[i] = true;
                        rdt->data = NULL;
@@ -947,7 +945,8 @@ XLogCheckBuffer(XLogRecData *rdata,
     */
    *lsn = page->pd_lsn;
 
-   if (XLByteLE(page->pd_lsn, RedoRecPtr))
+   if (fullPageWrites &&
+       XLByteLE(page->pd_lsn, RedoRecPtr))
    {
        /*
         * The page needs to be backed up, so set up *bkpb