]> granicus.if.org Git - postgresql/commitdiff
fsync patch from openlink
authorMarc G. Fournier <scrappy@hub.org>
Mon, 15 Jul 1996 19:22:17 +0000 (19:22 +0000)
committerMarc G. Fournier <scrappy@hub.org>
Mon, 15 Jul 1996 19:22:17 +0000 (19:22 +0000)
src/backend/bootstrap/bootstrap.c
src/backend/storage/file/fd.c
src/backend/storage/smgr/md.c
src/backend/tcop/postgres.c

index e2df755109cb5cb952ee75673c4d06c9e432ce45..4ad808c047b2455b2e71b309fbc7560663cf919e 100644 (file)
@@ -7,7 +7,7 @@
  * Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.1.1.1 1996/07/09 06:21:14 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.2 1996/07/15 19:21:59 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -136,6 +136,9 @@ static char *relname;                   /* current relation name */
 AttributeTupleForm attrtypes[MAXATTR];  /* points to attribute info */
 static char    *values[MAXATTR];       /* cooresponding attribute values */
 int            numattr;                /* number of attributes for cur. rel */
+#ifdef OPENLINK_PATCHES
+extern int     fsyncOff;               /* do not fsync the database */
+#endif
 
 #if defined(WIN32) || defined(PORTNAME_next)
 static jmp_buf    Warn_restart;
@@ -198,9 +201,16 @@ void err()
 static void
 usage()
 {
+#ifdef OPENLINK_PATCHES
+    fprintf(stderr,"Usage: postgres -boot [-d] [-C] [-F] [-O] [-Q] [-P portno] [dbName]\n");
+#else
     fprintf(stderr,"Usage: postgres -boot [-d] [-C] [-O] [-Q] [-P portno] [dbName]\n");
+#endif
     fprintf(stderr,"     d: debug mode\n");
     fprintf(stderr,"     C: disable version checking\n");
+#ifdef OPENLINK_PATCHES
+    fprintf(stderr,"     F: turn off fsync\n");
+#endif
     fprintf(stderr,"     O: set BootstrapProcessing mode\n");
     fprintf(stderr,"     P portno: specify port number\n");
 
@@ -256,8 +266,12 @@ BootstrapMain(int argc, char *argv[])
     Quiet = 0;
     Noversion = 0;
     dbName = NULL;
-    
+
+#ifdef OPENLINK_PATCHES
+    while ((flag = getopt(argc, argv, "dCOQP:F")) != EOF) {
+#else
     while ((flag = getopt(argc, argv, "dCOQP")) != EOF) {
+#endif
        switch (flag) {
        case 'd':
            DebugMode = 1; /* print out debuggin info while parsing */
@@ -274,6 +288,12 @@ BootstrapMain(int argc, char *argv[])
        case 'P':/* specify port */
            portFd = atoi(optarg);
            break; 
+#ifdef OPENLINK_PATCHES
+       case 'F':
+           fsyncOff = 1;
+           break;
+#endif
+           break; 
        default:
            usage();
            break;
index bb94c4c5decdab58e7b1751fb522bf495a9237d1..542e174eee6eda1a55fefd91534466d318316324 100644 (file)
@@ -6,7 +6,7 @@
  * Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *    $Id: fd.c,v 1.1.1.1 1996/07/09 06:21:55 scrappy Exp $
+ *    $Id: fd.c,v 1.2 1996/07/15 19:22:07 scrappy Exp $
  *
  * NOTES:
  *
@@ -191,6 +191,15 @@ static int FileAccess(File file);
 static File fileNameOpenFile(FileName fileName, int fileFlags, int fileMode);
 static char *filepath(char *filename);
 
+#ifdef OPENLINK_PATCHES
+pg_fsync(fd)
+{
+    extern int fsyncOff;
+    return fsyncOff ? 0 : fsync(fd);
+}
+#define fsync pg_fsync
+#endif
+
 #if defined(FDDEBUG)
 static void
 _dump_lru()
index 8c3c430981dc863982d38e789edd982e12d5938c..416b661f80b699e083af4549264e67d71ef81e03 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.2 1996/07/09 06:35:38 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.3 1996/07/15 19:22:12 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -472,8 +472,12 @@ mdblindwrt(char *dbstr,
     status = SM_SUCCESS;
 
     /* write and sync the block */
+#ifdef OPENLINK_PATCHES
+    if (write(fd, buffer, BLCKSZ) != BLCKSZ || (pg_fsync(fd) < 0))
+#else
     if (write(fd, buffer, BLCKSZ) != BLCKSZ || fsync(fd) < 0)
        status = SM_FAIL;
+#endif
 
     if (close(fd) < 0)
        status = SM_FAIL;
index d6447eaffc2f02e12efba141b3d72faec62414ed..532035213566ce305f5f1698005e7b4355dc5c6d 100644 (file)
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.1.1.1 1996/07/09 06:22:00 scrappy Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.2 1996/07/15 19:22:17 scrappy Exp $
  *
  * NOTES
  *    this is the "main" module of the postgres backend and
@@ -93,6 +93,10 @@ CommandDest whereToSendOutput;
 extern int     lockingOff;
 extern int     NBuffers;
 
+#ifdef OPENLINK_PATCHES
+int    fsyncOff = 0;
+#endif
+
 int    dontExecute = 0;
 static int     ShowStats;
 static bool    IsEmptyQuery = false;
@@ -699,7 +703,11 @@ static void usage(char* progname)
     fprintf(stderr, 
            "Usage: %s [-B nbufs] [-d lvl] ] [-f plantype] \t[-m portno] [\t -o filename]\n",
            progname);
+#ifdef OPENLINK_PATCHES
+    fprintf(stderr,"\t[-P portno] [-t tracetype] [-x opttype] [-bCEiLFNopQSs] [dbname]\n");
+#else
     fprintf(stderr,"\t[-P portno] [-t tracetype] [-x opttype] [-bCEiLNopQSs] [dbname]\n");
+#endif
     fprintf(stderr, "    b: consider bushy plan trees during optimization\n");
     fprintf(stderr, "    B: set number of buffers in buffer pool\n");
     fprintf(stderr, "    C: supress version info\n");
@@ -708,6 +716,9 @@ static void usage(char* progname)
     fprintf(stderr, "    f: forbid plantype generation\n");
     fprintf(stderr, "    i: don't execute the query, just show the plan tree\n");
     fprintf(stderr, "    L: turn off locking\n");
+#ifdef OPENLINK_PATCHES
+    fprintf(stderr, "    F: turn off fsync\n");
+#endif
     fprintf(stderr, "    m: set up a listening backend at portno to support multiple front-ends\n");
     fprintf(stderr, "    M: start as postmaster\n");
     fprintf(stderr, "    N: don't use newline as query delimiter\n");
@@ -804,7 +815,11 @@ PostgresMain(int argc, char *argv[])
        hostName = hostbuf;
     }
 
+#ifdef OPENLINK_PATCHES
+    while ((flag = getopt(argc, argv, "B:bCd:Ef:iLm:MNo:P:pQSst:x:F")) != EOF)
+#else
     while ((flag = getopt(argc, argv, "B:bCd:Ef:iLm:MNo:P:pQSst:x:")) != EOF)
+#endif
        switch (flag) {
            
        case 'b':
@@ -888,7 +903,17 @@ PostgresMain(int argc, char *argv[])
             */
            lockingOff = 1;
            break;
-           
+
+#ifdef OPENLINK_PATCHES
+       case 'F':
+           /* --------------------
+            *  turn off fsync
+            * --------------------
+            */
+           fsyncOff = 1;
+           break;
+#endif
+
        case 'm':
            /* start up a listening backend that can respond to 
               multiple front-ends.  (Note:  all the front-end connections
@@ -1195,7 +1220,7 @@ PostgresMain(int argc, char *argv[])
      */
     if (IsUnderPostmaster == false) {
        puts("\nPOSTGRES backend interactive interface");
-       puts("$Revision: 1.1.1.1 $ $Date: 1996/07/09 06:22:00 $");
+       puts("$Revision: 1.2 $ $Date: 1996/07/15 19:22:17 $");
     }
     
     /* ----------------