Commit 3455b0a5 authored by Bruce Momjian's avatar Bruce Momjian

Update fsync test to match new O_DIRECT behavior.

Greg Smith
parent eb1fbbe5
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include <time.h> #include <time.h>
#include <sys/time.h> #include <sys/time.h>
#include <unistd.h> #include <unistd.h>
#include <string.h>
#ifdef WIN32 #ifdef WIN32
#define FSYNC_FILENAME "./test_fsync.out" #define FSYNC_FILENAME "./test_fsync.out"
...@@ -21,21 +22,34 @@ ...@@ -21,21 +22,34 @@
#define FSYNC_FILENAME "/var/tmp/test_fsync.out" #define FSYNC_FILENAME "/var/tmp/test_fsync.out"
#endif #endif
/* O_SYNC and O_FSYNC are the same */ /* This logic comes from src/backend/access/transam/xlog.c where it's
better documented */
#ifdef O_DIRECT
#define PG_O_DIRECT O_DIRECT
#else
#define PG_O_DIRECT 0
#endif
#if defined(O_SYNC) #if defined(O_SYNC)
#define OPEN_SYNC_FLAG O_SYNC #define BARE_OPEN_SYNC_FLAG O_SYNC
#elif defined(O_FSYNC) #elif defined(O_FSYNC)
#define OPEN_SYNC_FLAG O_FSYNC #define BARE_OPEN_SYNC_FLAG O_FSYNC
#elif defined(O_DSYNC) #endif
#define OPEN_DATASYNC_FLAG O_DSYNC #ifdef BARE_OPEN_SYNC_FLAG
#define OPEN_SYNC_FLAG (BARE_OPEN_SYNC_FLAG | PG_O_DIRECT)
#endif #endif
#if defined(O_DSYNC)
#if defined(OPEN_SYNC_FLAG) #if defined(OPEN_SYNC_FLAG)
#if defined(O_DSYNC) && (O_DSYNC != OPEN_SYNC_FLAG) #if O_DSYNC != BARE_OPEN_SYNC_FLAG
#define OPEN_DATASYNC_FLAG O_DSYNC #define OPEN_DATASYNC_FLAG (O_DSYNC | PG_O_DIRECT)
#endif
#else
#define OPEN_DATASYNC_FLAG (O_DSYNC | PG_O_DIRECT)
#endif #endif
#endif #endif
#define WAL_FILE_SIZE (16 * 1024 * 1024) #define WAL_FILE_SIZE (16 * 1024 * 1024)
void die(char *str); void die(char *str);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment