]> granicus.if.org Git - postgresql/commitdiff
Fix a subtle bug exposed by recent wal_sync_method rearrangements.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 17 May 2008 17:24:57 +0000 (17:24 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 17 May 2008 17:24:57 +0000 (17:24 +0000)
Formerly, the default value of wal_sync_method was determined inside xlog.c,
but now it is determined inside guc.c.  guc.c was reading xlogdefs.h
without having read <fcntl.h>, leading to wrong determination of
DEFAULT_SYNC_METHOD.  Obviously xlogdefs.h needs to include <fcntl.h>
for itself to ensure stable results.

src/backend/access/transam/xlog.c
src/include/access/xlogdefs.h

index 42a4befba1ea04d69edb39bc16f7366056f33bf7..507ae272e80e41de8c1ed810411b772e0ab12794 100644 (file)
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.310 2008/05/16 19:15:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.311 2008/05/17 17:24:57 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -15,7 +15,6 @@
 #include "postgres.h"
 
 #include <ctype.h>
-#include <fcntl.h>
 #include <signal.h>
 #include <time.h>
 #include <sys/stat.h>
@@ -31,7 +30,6 @@
 #include "access/twophase.h"
 #include "access/xact.h"
 #include "access/xlog_internal.h"
-#include "access/xlogdefs.h"
 #include "access/xlogutils.h"
 #include "catalog/catversion.h"
 #include "catalog/pg_control.h"
index 285890bbd6d561f7daf11ddf1d4de50083afeb3d..99db0bcffc32e6ccaf2553bae13e7f351a80136c 100644 (file)
@@ -7,11 +7,13 @@
  * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/access/xlogdefs.h,v 1.21 2008/05/17 16:49:23 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/xlogdefs.h,v 1.22 2008/05/17 17:24:57 tgl Exp $
  */
 #ifndef XLOG_DEFS_H
 #define XLOG_DEFS_H
 
+#include <fcntl.h>                             /* need open() flags */
+
 /*
  * Pointer to a location in the XLOG.  These pointers are 64 bits wide,
  * because we don't want them ever to overflow.