diff options
Diffstat (limited to 'src/backend')
27 files changed, 256 insertions, 38 deletions
diff --git a/src/backend/Makefile b/src/backend/Makefile index 9410ab8ce3..87e4b75c1d 100644 --- a/src/backend/Makefile +++ b/src/backend/Makefile @@ -34,7 +34,7 @@ # # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.34 1998/11/27 19:51:27 vadim Exp $ +# $Header: /cvsroot/pgsql/src/backend/Makefile,v 1.35 1999/01/17 06:18:11 momjian Exp $ # #------------------------------------------------------------------------- @@ -58,12 +58,34 @@ CFLAGS+= $(KRBFLAGS) LDFLAGS+= $(KRBLIBS) endif +ifeq ($(MAKE_DLL), true) +DLLOBJS=$(OBJS) +DLLOBJS+= ../utils/version.o +DLLLIBS= -L/usr/local/lib -lcygipc -lcrypt -lcygwin -lkernel32 + +postgres.def: $(DLLOBJS) + $(DLLTOOL) --export-all --output-def $@ $(DLLOBJS) + +libpostgres.a: $(DLLOBJS) ../utils/dllinit.o postgres.def + $(DLLTOOL) --dllname postgres.exe --def postgres.def --output-lib $@ +endif all: postgres $(POSTGRES_IMP) global1.bki.source local1_template1.bki.source \ global1.description local1_template1.description +ifneq ($(PORTNAME), win) postgres: fmgr.h $(OBJS) ../utils/version.o $(CC) -o postgres $(OBJS) ../utils/version.o $(LDFLAGS) +else +postgres: $(DLLOBJS) ../utils/dllinit.o postgres.def libpostgres.a + dlltool --dllname $@$(X) --output-exp $@.exp --def postgres.def + gcc -g -o $@$(X) -Wl,--base-file,$@.base $@.exp $(DLLOBJS) $(DLLLIBS) + dlltool --dllname $@$(X) --base-file $@.base --output-exp $@.exp --def postgres.def + gcc -g -o $@$(X) $@.exp $(DLLOBJS) $(DLLLIBS) + rm $@.exp $@.base +endif + +#.PHONY: postgres $(OBJS): $(DIRS:%=%.dir) @@ -71,7 +93,10 @@ $(DIRS:%=%.dir): $(MAKE) -C $(subst .dir,,$@) all ../utils/version.o: - $(MAKE) -C ../utils version.o + $(MAKE) -C ../utils version.o + +../utils/dllinit.c: + $(MAKE) -C ../utils dllinit.o global1.bki.source local1_template1.bki.source \ global1.description local1_template1.description: catalog/$@ @@ -89,7 +114,6 @@ postgres.o: $(OBJS) fast: $(CC) -r -o postgres.o $(OBJS) $(LDFLAGS) - ############################################################################ # The following targets are specified in make commands that appear in the # make files in our subdirectories. @@ -104,9 +128,14 @@ fmgr.h: ############################################################################# clean: - rm -f postgres $(POSTGRES_IMP) fmgr.h parse.h \ + rm -f postgres$(X) $(POSTGRES_IMP) fmgr.h parse.h \ global1.bki.source local1_template1.bki.source \ global1.description local1_template1.description +ifeq ($(PORTNAME), win) +ifeq ($(MAKE_DLL), true) + rm -f postgres.dll postgres.def libpostgres.a +endif +endif for i in $(DIRS); do $(MAKE) -C $$i clean; done .DEFAULT: @@ -132,12 +161,18 @@ install: $(LIBDIR) $(BINDIR) $(HEADERDIR) postgres $(POSTGRES_IMP) fmgr.h\ global1.bki.source local1_template1.bki.source \ global1.description local1_template1.description \ libpq/pg_hba.conf.sample optimizer/geqo/pg_geqo.sample - $(INSTALL) $(INSTL_EXE_OPTS) postgres $(BINDIR)/postgres + $(INSTALL) $(INSTL_EXE_OPTS) postgres$(X) $(BINDIR)/postgres$(X) ifeq ($(MAKE_EXPORTS), true) $(INSTALL) $(INSTLOPTS) $(POSTGRES_IMP) $(LIBDIR)/$(POSTGRES_IMP) endif @rm -f $(BINDIR)/postmaster - ln -s postgres $(BINDIR)/postmaster + ln -s postgres$(X) $(BINDIR)/postmaster +ifeq ($(PORTNAME), win) +ifeq ($(MAKE_DLL), true) +# $(INSTALL) $(INSTLOPTS) postgres.dll $(BINDIR)/postgres.dll + $(INSTALL) $(INSTLOPTS) libpostgres.a $(LIBDIR)/libpostgres.a +endif +endif $(INSTALL) $(INSTLOPTS) fmgr.h $(HEADERDIR)/fmgr.h $(INSTALL) $(INSTLOPTS) global1.bki.source \ $(LIBDIR)/global1.bki.source @@ -152,7 +187,13 @@ endif $(INSTALL) $(INSTLOPTS) optimizer/geqo/pg_geqo.sample \ $(LIBDIR)/pg_geqo.sample -$(BINDIR) $(LIBDIR) $(HEADERDIR): +#$(BINDIR) $(LIBDIR) $(HEADERDIR): +# mkdir $@ +$(BINDIR): + mkdir $@ +$(LIBDIR): + mkdir $@ +$(HEADERDIR): mkdir $@ ############################################################################# diff --git a/src/backend/access/nbtree/nbtsort.c b/src/backend/access/nbtree/nbtsort.c index 30d74ced97..10dc7701c0 100644 --- a/src/backend/access/nbtree/nbtsort.c +++ b/src/backend/access/nbtree/nbtsort.c @@ -5,7 +5,7 @@ * * * IDENTIFICATION - * $Id: nbtsort.c,v 1.33 1998/09/01 04:27:07 momjian Exp $ + * $Id: nbtsort.c,v 1.34 1999/01/17 06:18:12 momjian Exp $ * * NOTES * @@ -420,7 +420,11 @@ _bt_tapecreate(char *fname) tape->bttb_magic = BTTAPEMAGIC; +#ifndef __CYGWIN32__ tape->bttb_fd = FileNameOpenFile(fname, O_RDWR | O_CREAT | O_TRUNC, 0600); +#else + tape->bttb_fd = FileNameOpenFile(fname, O_RDWR | O_CREAT | O_TRUNC | O_BINARY, 0600); +#endif Assert(tape->bttb_fd >= 0); /* initialize the buffer */ diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c index 9eb4e740bc..ff1c5afc10 100644 --- a/src/backend/bootstrap/bootstrap.c +++ b/src/backend/bootstrap/bootstrap.c @@ -7,7 +7,7 @@ * Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.52 1998/11/27 19:51:45 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/bootstrap/bootstrap.c,v 1.53 1999/01/17 06:18:14 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -17,6 +17,9 @@ #include <signal.h> #include <setjmp.h> #include <string.h> +#ifdef __CYGWIN32__ +#include <getopt.h> +#endif #define BOOTSTRAP_INCLUDE /* mask out stuff in tcop/tcopprot.h */ diff --git a/src/backend/catalog/Makefile b/src/backend/catalog/Makefile index 6d5d26a143..93232ea66b 100644 --- a/src/backend/catalog/Makefile +++ b/src/backend/catalog/Makefile @@ -4,7 +4,7 @@ # Makefile for catalog # # IDENTIFICATION -# $Header: /cvsroot/pgsql/src/backend/catalog/Makefile,v 1.14 1998/10/08 18:29:19 momjian Exp $ +# $Header: /cvsroot/pgsql/src/backend/catalog/Makefile,v 1.15 1999/01/17 06:18:14 momjian Exp $ # #------------------------------------------------------------------------- @@ -39,17 +39,26 @@ LOCALBKI_SRCS= $(addprefix ../../include/catalog/, \ ) global1.bki.source: $(GENBKI) $(GLOBALBKI_SRCS) +ifneq ($(PORTNAME), win) sh $(SHOPTS) $(GENBKI) $(BKIOPTS) $(GLOBALBKI_SRCS) > $@ 2>global1.description +else + $(GENBKI) $(BKIOPTS) $(GLOBALBKI_SRCS) > $@ 2>global1.description +endif local1_template1.bki.source: $(GENBKI) $(LOCALBKI_SRCS) +ifneq ($(PORTNAME), win) sh $(SHOPTS) $(GENBKI) $(BKIOPTS) $(LOCALBKI_SRCS) > $@ 2>local1_template1.description +else + $(GENBKI) $(BKIOPTS) $(LOCALBKI_SRCS) > $@ 2>local1_template1.description +endif depend dep: $(CC) -MM $(CFLAGS) *.c >depend clean: rm -f SUBSYS.o $(OBJS) global1.bki.source local1_template1.bki.source \ - global1.description local1_template1.description + global1.description local1_template1.description \ + $(GENBKI) ifeq (depend,$(wildcard depend)) include depend diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index a9e22ec40b..5a8b3fc965 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -6,7 +6,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.66 1999/01/11 03:56:05 scrappy Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.67 1999/01/17 06:18:15 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -250,7 +250,11 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe, } else { +#ifndef __CYGWIN32__ fp = AllocateFile(filename, "r"); +#else + fp = AllocateFile(filename, "rb"); +#endif if (fp == NULL) elog(ERROR, "COPY command, running in backend with " "effective uid %d, could not open file '%s' for " @@ -277,7 +281,11 @@ DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe, mode_t oumask; /* Pre-existing umask value */ oumask = umask((mode_t) 0); +#ifndef __CYGWIN32__ fp = AllocateFile(filename, "w"); +#else + fp = AllocateFile(filename, "wb"); +#endif umask(oumask); if (fp == NULL) elog(ERROR, "COPY command, running in backend with " diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index a774ca1deb..a3cdd49f26 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.28 1998/12/15 12:45:55 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.29 1999/01/17 06:18:17 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -305,7 +305,11 @@ stop_vacuum(char *dbpath, char *dbname) else snprintf(filename, 256, "%s%c%s.vacuum", dbpath, SEP_CHAR, dbname); +#ifndef __CYGWIN32__ if ((fp = AllocateFile(filename, "r")) != NULL) +#else + if ((fp = AllocateFile(filename, "rb")) != NULL) +#endif { fscanf(fp, "%d", &pid); FreeFile(fp); diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 608dd729ff..6005c107cc 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.92 1998/12/15 12:46:01 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.93 1999/01/17 06:18:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -187,7 +187,11 @@ vc_init() { int fd; +#ifndef __CYGWIN32__ if ((fd = open("pg_vlock", O_CREAT | O_EXCL, 0600)) < 0) +#else + if ((fd = open("pg_vlock", O_CREAT | O_EXCL | O_BINARY, 0600)) < 0) +#endif { elog(ERROR, "Can't create lock file. Is another vacuum cleaner running?\n\ \tIf not, you may remove the pg_vlock file in the %s\n\ diff --git a/src/backend/executor/nodeHash.c b/src/backend/executor/nodeHash.c index 5ec45c7c79..d0b3dc3916 100644 --- a/src/backend/executor/nodeHash.c +++ b/src/backend/executor/nodeHash.c @@ -6,7 +6,7 @@ * Copyright (c) 1994, Regents of the University of California * * - * $Id: nodeHash.c,v 1.28 1998/12/15 12:46:06 vadim Exp $ + * $Id: nodeHash.c,v 1.29 1999/01/17 06:18:19 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -100,8 +100,13 @@ ExecHash(Hash *node) batches = (File *) palloc(nbatch * sizeof(File)); for (i = 0; i < nbatch; i++) { +#ifndef __CYGWIN32__ batches[i] = FileNameOpenFile(ABSADDR(innerbatchNames[i]), O_CREAT | O_RDWR, 0600); +#else + batches[i] = FileNameOpenFile(ABSADDR(innerbatchNames[i]), + O_CREAT | O_RDWR | O_BINARY, 0600); +#endif } hashstate->hashBatches = batches; batchPos = (RelativeAddr *) ABSADDR(hashtable->innerbatchPos); diff --git a/src/backend/executor/nodeHashjoin.c b/src/backend/executor/nodeHashjoin.c index 4673d92ce3..1de20fb165 100644 --- a/src/backend/executor/nodeHashjoin.c +++ b/src/backend/executor/nodeHashjoin.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.14 1998/11/27 19:52:02 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/nodeHashjoin.c,v 1.15 1999/01/17 06:18:21 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -172,9 +172,15 @@ ExecHashJoin(HashJoin *node) palloc(nbatch * sizeof(File)); for (i = 0; i < nbatch; i++) { +#ifndef __CYGWIN32__ outerbatches[i] = FileNameOpenFile( - ABSADDR(outerbatchNames[i]), - O_CREAT | O_RDWR, 0600); + ABSADDR(outerbatchNames[i]), + O_CREAT | O_RDWR, 0600); +#else + outerbatches[i] = FileNameOpenFile( + ABSADDR(outerbatchNames[i]), + O_CREAT | O_RDWR | O_BINARY, 0600); +#endif } hjstate->hj_OuterBatches = outerbatches; diff --git a/src/backend/libpq/be-fsstubs.c b/src/backend/libpq/be-fsstubs.c index b35eba81ca..0e6bd7f522 100644 --- a/src/backend/libpq/be-fsstubs.c +++ b/src/backend/libpq/be-fsstubs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.26 1998/09/01 04:28:46 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/be-fsstubs.c,v 1.27 1999/01/17 06:18:24 momjian Exp $ * * NOTES * This should be moved to a more appropriate place. It is here @@ -267,7 +267,11 @@ lo_import(text *filename) * open the file to be read in */ StrNCpy(fnamebuf, VARDATA(filename), VARSIZE(filename) - VARHDRSZ + 1); +#ifndef __CYGWIN32__ fd = open(fnamebuf, O_RDONLY, 0666); +#else + fd = open(fnamebuf, O_RDONLY | O_BINARY, 0666); +#endif if (fd < 0) { /* error */ elog(ERROR, "be_lo_import: can't open unix file\"%s\"\n", @@ -341,7 +345,11 @@ lo_export(Oid lobjId, text *filename) */ oumask = umask((mode_t) 0); StrNCpy(fnamebuf, VARDATA(filename), VARSIZE(filename) - VARHDRSZ + 1); +#ifndef __CYGWIN32__ fd = open(fnamebuf, O_CREAT | O_WRONLY | O_TRUNC, 0666); +#else + fd = open(fnamebuf, O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666); +#endif umask(oumask); if (fd < 0) { /* error */ diff --git a/src/backend/libpq/crypt.c b/src/backend/libpq/crypt.c index 92f70c5acb..fb87280299 100644 --- a/src/backend/libpq/crypt.c +++ b/src/backend/libpq/crypt.c @@ -9,7 +9,7 @@ * Dec 17, 1997 - Todd A. Brandys * Orignal Version Completed. * - * $Id: crypt.c,v 1.13 1998/12/14 06:50:24 scrappy Exp $ + * $Id: crypt.c,v 1.14 1999/01/17 06:18:25 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -76,7 +76,11 @@ crypt_openpwdfile() FILE *pwdfile; filename = crypt_getpwdfilename(); +#ifndef __CYGWIN32__ pwdfile = AllocateFile(filename, "r"); +#else + pwdfile = AllocateFile(filename, "rb"); +#endif return pwdfile; } diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c index daa4716e30..c5be35f82b 100644 --- a/src/backend/libpq/hba.c +++ b/src/backend/libpq/hba.c @@ -5,7 +5,7 @@ * wherein you authenticate a user by seeing what IP address the system * says he comes from and possibly using ident). * - * $Id: hba.c,v 1.37 1998/12/14 06:50:25 scrappy Exp $ + * $Id: hba.c,v 1.38 1999/01/17 06:18:25 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -390,7 +390,11 @@ find_hba_entry(SockAddr *raddr, const char *user, const char *database, old_conf_file = (char *) palloc(bufsize); snprintf(old_conf_file, bufsize, "%s/%s", DataDir, OLD_CONF_FILE); +#ifndef __CYGWIN32__ if ((fd = open(old_conf_file, O_RDONLY, 0)) != -1) +#else + if ((fd = open(old_conf_file, O_RDONLY | O_BINARY, 0)) != -1) +#endif { /* Old config file exists. Tell this guy he needs to upgrade. */ close(fd); @@ -801,7 +805,11 @@ verify_against_usermap(const char *pguser, map_file = (char *) palloc(bufsize); snprintf(map_file, bufsize, "%s/%s", DataDir, MAP_FILE); +#ifndef __CYGWIN32__ file = AllocateFile(map_file, "r"); +#else + file = AllocateFile(map_file, "rb"); +#endif if (file == NULL) { /* The open of the map file failed. */ @@ -973,7 +981,11 @@ GetCharSetByHost(char *TableName, int host, const char *DataDir) bufsize = (strlen(DataDir) + strlen(CHARSET_FILE) + 2) * sizeof(char); map_file = (char *) palloc(bufsize); snprintf(map_file, bufsize, "%s/%s", DataDir, CHARSET_FILE); +#ifndef __CYGWIN32__ file = fopen(map_file, "r"); +#else + file = fopen(map_file, "rb"); +#endif if (file == NULL) { return; diff --git a/src/backend/libpq/password.c b/src/backend/libpq/password.c index e6c1d816a8..968ba055e6 100644 --- a/src/backend/libpq/password.c +++ b/src/backend/libpq/password.c @@ -1,7 +1,7 @@ /* * Copyright (c) 1994, Regents of the University of California * - * $Id: password.c,v 1.19 1998/12/14 06:50:26 scrappy Exp $ + * $Id: password.c,v 1.20 1999/01/17 06:18:26 momjian Exp $ * */ @@ -27,7 +27,11 @@ verify_password(char *auth_arg, char *user, char *password) strcat(pw_file_fullname, "/"); strcat(pw_file_fullname, auth_arg); +#ifndef __CYGWIN32__ pw_file = AllocateFile(pw_file_fullname, "r"); +#else + pw_file = AllocateFile(pw_file_fullname, "rb"); +#endif if (!pw_file) { snprintf(PQerrormsg, ERROR_MSG_LENGTH, diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index c8de26e8d5..8f9c14fee9 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: pqcomm.c,v 1.62 1999/01/17 03:10:23 tgl Exp $ + * $Id: pqcomm.c,v 1.63 1999/01/17 06:18:26 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -466,7 +466,11 @@ StreamServerPort(char *hostName, short portName, int *fdP) * can safely delete the file. */ #ifdef HAVE_FCNTL_SETLK +#ifndef __CYGWIN32__ if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK, 0666)) >= 0) +#else + if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK | O_BINARY, 0666)) >= 0) +#endif { struct flock lck; @@ -519,7 +523,11 @@ StreamServerPort(char *hostName, short portName, int *fdP) * lock_fd is left open to keep the lock. */ #ifdef HAVE_FCNTL_SETLK +#ifndef __CYGWIN32__ if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK, 0666)) >= 0) +#else + if ((lock_fd = open(sock_path, O_WRONLY | O_NONBLOCK | O_BINARY, 0666)) >= 0) +#endif { struct flock lck; diff --git a/src/backend/optimizer/geqo/geqo_params.c b/src/backend/optimizer/geqo/geqo_params.c index 2257f2c293..e3779ead25 100644 --- a/src/backend/optimizer/geqo/geqo_params.c +++ b/src/backend/optimizer/geqo/geqo_params.c @@ -5,7 +5,7 @@ * * Copyright (c) 1994, Regents of the University of California * -* $Id: geqo_params.c,v 1.10 1998/09/01 03:23:11 momjian Exp $ +* $Id: geqo_params.c,v 1.11 1999/01/17 06:18:27 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -91,7 +91,11 @@ geqo_params(int string_length) sprintf(conf_file, "%s/%s", DataDir, GEQO_FILE); /* open the config file */ +#ifndef __CYGWIN32__ file = AllocateFile(conf_file, "r"); +#else + file = AllocateFile(conf_file, "rb"); +#endif if (file) { diff --git a/src/backend/port/snprintf.c b/src/backend/port/snprintf.c index c49df44942..2d6215decd 100644 --- a/src/backend/port/snprintf.c +++ b/src/backend/port/snprintf.c @@ -36,6 +36,7 @@ #include "pathnames.h" #endif +#include <features.h> #include "postgres.h" #include "regex/cdefs.h" @@ -73,7 +74,7 @@ typedef unsigned long long ulong_long; * causing nast effects. **************************************************************/ -/*static char _id[] = "$Id: snprintf.c,v 1.16 1999/01/17 03:22:49 tgl Exp $";*/ +/*static char _id[] = "$Id: snprintf.c,v 1.17 1999/01/17 06:18:33 momjian Exp $";*/ static char *end; static int SnprfOverflow; diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index 8c35f6eeb6..795b1959fd 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.98 1998/11/29 01:51:56 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.99 1999/01/17 06:18:34 momjian Exp $ * * NOTES * @@ -73,6 +73,10 @@ #include <sys/select.h> #endif +#ifdef __CYGWIN32__ +#include <getopt.h> +#endif + #include "storage/ipc.h" #include "libpq/libpq.h" #include "libpq/auth.h" @@ -170,7 +174,9 @@ static int real_argc; static char Execfile[MAXPATHLEN] = ""; static int ServerSock_INET = INVALID_SOCK; /* stream socket server */ +#ifndef __CYGWIN32__ static int ServerSock_UNIX = INVALID_SOCK; /* stream socket server */ +#endif /* * Set by the -o option @@ -268,7 +274,11 @@ checkDataDir(const char *DataDir, bool *DataDirOK) sprintf(path, "%s%cbase%ctemplate1%cpg_class", DataDir, SEP_CHAR, SEP_CHAR, SEP_CHAR); +#ifndef __CYGWIN32__ fp = AllocateFile(path, "r"); +#else + fp = AllocateFile(path, "rb"); +#endif if (fp == NULL) { fprintf(stderr, "%s does not find the database system. " @@ -522,6 +532,7 @@ PostmasterMain(int argc, char *argv[]) exit(1); } } +#ifndef __CYGWIN32__ status = StreamServerPort(NULL, PostPortName, &ServerSock_UNIX); if (status != STATUS_OK) { @@ -529,7 +540,7 @@ PostmasterMain(int argc, char *argv[]) progname); exit(1); } - +#endif /* set up shared memory and semaphores */ EnableMemoryContext(TRUE); reset_shared(PostPortName); @@ -584,7 +595,11 @@ pmdaemonize(void) exit(1); } #endif +#ifndef __CYGWIN32__ i = open(NULL_DEV, O_RDWR); +#else + i = open(NULL_DEV, O_RDWR | O_BINARY); +#endif dup2(i, 0); dup2(i, 1); dup2(i, 2); @@ -688,12 +703,14 @@ ServerLoop(void) /* new connection pending on our well-known port's socket */ +#ifndef __CYGWIN32__ if (ServerSock_UNIX != INVALID_SOCK && FD_ISSET(ServerSock_UNIX, &rmask) && (port = ConnCreate(ServerSock_UNIX)) != NULL) PacketReceiveSetup(&port->pktInfo, readStartupPacket, (void *) port); +#endif if (ServerSock_INET != INVALID_SOCK && FD_ISSET(ServerSock_INET, &rmask) && @@ -802,6 +819,7 @@ initMasks(fd_set *rmask, fd_set *wmask) FD_ZERO(rmask); FD_ZERO(wmask); +#ifndef __CYGWIN32__ if (ServerSock_UNIX != INVALID_SOCK) { FD_SET(ServerSock_UNIX, rmask); @@ -809,6 +827,7 @@ initMasks(fd_set *rmask, fd_set *wmask) if (ServerSock_UNIX > nsocks) nsocks = ServerSock_UNIX; } +#endif if (ServerSock_INET != INVALID_SOCK) { @@ -1437,7 +1456,9 @@ DoBackend(Port *port) /* Close the postmater sockets */ if (NetServer) StreamClose(ServerSock_INET); +#ifndef __CYGWIN32__ StreamClose(ServerSock_UNIX); +#endif /* Save port for ps status */ MyProcPort = port; @@ -1546,8 +1567,10 @@ ExitPostmaster(int status) */ if (ServerSock_INET != INVALID_SOCK) StreamClose(ServerSock_INET); +#ifndef __CYGWIN32__ if (ServerSock_UNIX != INVALID_SOCK) StreamClose(ServerSock_UNIX); +#endif proc_exit(status); } diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index 1c45872883..762b49836c 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.39 1998/09/01 04:32:06 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/smgr/md.c,v 1.40 1999/01/17 06:18:40 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -140,7 +140,11 @@ mdcreate(Relation reln) char *path; path = relpath(reln->rd_rel->relname.data); +#ifndef __CYGWIN32__ fd = FileNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL, 0600); +#else + fd = FileNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600); +#endif /* * If the file already exists and is empty, we pretend that the create @@ -157,7 +161,11 @@ mdcreate(Relation reln) { if (!IsBootstrapProcessingMode()) return -1; +#ifndef __CYGWIN32__ fd = FileNameOpenFile(path, O_RDWR, 0600); /* Bootstrap */ +#else + fd = FileNameOpenFile(path, O_RDWR | O_BINARY, 0600); /* Bootstrap */ +#endif if (fd < 0) return -1; } @@ -290,11 +298,19 @@ mdopen(Relation reln) path = relpath(reln->rd_rel->relname.data); +#ifndef __CYGWIN32__ fd = FileNameOpenFile(path, O_RDWR, 0600); +#else + fd = FileNameOpenFile(path, O_RDWR | O_BINARY, 0600); +#endif /* this should only happen during bootstrap processing */ if (fd < 0) +#ifndef __CYGWIN32__ fd = FileNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL, 0600); +#else + fd = FileNameOpenFile(path, O_RDWR | O_CREAT | O_EXCL | O_BINARY, 0600); +#endif vfd = _fdvec_alloc(); if (vfd < 0) @@ -622,7 +638,11 @@ mdblindwrt(char *dbstr, } #endif +#ifndef __CYGWIN32__ if ((fd = open(path, O_RDWR, 0600)) < 0) +#else + if ((fd = open(path, O_RDWR | O_BINARY, 0600)) < 0) +#endif return SM_FAIL; /* seek to the right spot */ @@ -900,7 +920,11 @@ _mdfd_openseg(Relation reln, int segno, int oflags) fullpath = path; /* open the file */ +#ifndef __CYGWIN32__ fd = PathNameOpenFile(fullpath, O_RDWR | oflags, 0600); +#else + fd = PathNameOpenFile(fullpath, O_RDWR | O_BINARY | oflags, 0600); +#endif if (dofree) pfree(fullpath); diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 7e5f2d66d6..eeec7b0225 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.95 1998/12/16 11:53:52 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.96 1999/01/17 06:18:42 momjian Exp $ * * NOTES * this is the "main" module of the postgres backend and @@ -39,6 +39,9 @@ #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> +#ifdef __CYGWIN32__ +#include <getopt.h> +#endif #include "postgres.h" #include "miscadmin.h" @@ -1451,7 +1454,11 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[]) { fprintf(stderr, "Postmaster flag set: no port number specified, use /dev/null\n"); +#ifndef __CYGWIN32__ Portfd = open(NULL_DEV, O_RDWR, 0666); +#else + Portfd = open(NULL_DEV, O_RDWR | O_BINARY, 0666); +#endif } pq_init(Portfd); whereToSendOutput = Remote; @@ -1520,7 +1527,7 @@ PostgresMain(int argc, char *argv[], int real_argc, char *real_argv[]) if (!IsUnderPostmaster) { puts("\nPOSTGRES backend interactive interface "); - puts("$Revision: 1.95 $ $Date: 1998/12/16 11:53:52 $\n"); + puts("$Revision: 1.96 $ $Date: 1999/01/17 06:18:42 $\n"); } /* ---------------- diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 598fe952c4..7d9e11ba5b 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.51 1998/12/18 09:10:36 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.52 1999/01/17 06:18:44 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -620,7 +620,11 @@ ProcessUtility(Node *parsetree, filename = stmt->filename; closeAllVfds(); +#ifndef __CYGWIN32__ if ((fp = AllocateFile(filename, "r")) == NULL) +#else + if ((fp = AllocateFile(filename, "rb")) == NULL) +#endif elog(ERROR, "LOAD: could not open file '%s'", filename); FreeFile(fp); load_file(filename); diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c index 04a224feae..7a4a14583b 100644 --- a/src/backend/utils/adt/arrayfuncs.c +++ b/src/backend/utils/adt/arrayfuncs.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.34 1998/09/01 04:32:24 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.35 1999/01/17 06:18:45 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -550,7 +550,11 @@ _ReadLOArray(char *str, { FILE *afd; +#ifndef __CYGWIN32__ if ((afd = AllocateFile(accessfile, "r")) == NULL) +#else + if ((afd = AllocateFile(accessfile, "r")) == NULL) +#endif elog(ERROR, "unable to open access pattern file"); *chunkFlag = true; retStr = _ChunkArray(*fd, afd, ndim, dim, baseSize, nbytes, diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 99ee3d2fc5..f86196d3bc 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.52 1998/12/15 12:46:37 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.53 1999/01/17 06:18:51 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1861,7 +1861,11 @@ init_irels(void) int i; int relno; +#ifndef __CYGWIN32__ if ((fd = FileNameOpenFile(INIT_FILENAME, O_RDONLY, 0600)) < 0) +#else + if ((fd = FileNameOpenFile(INIT_FILENAME, O_RDONLY | O_BINARY, 0600)) < 0) +#endif { write_irels(); return; @@ -2022,7 +2026,11 @@ write_irels(void) int relno; RelationBuildDescInfo bi; +#ifndef __CYGWIN32__ fd = FileNameOpenFile(INIT_FILENAME, O_WRONLY | O_CREAT | O_TRUNC, 0600); +#else + fd = FileNameOpenFile(INIT_FILENAME, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0600); +#endif if (fd < 0) elog(FATAL, "cannot create init file %s", INIT_FILENAME); diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index 564be81ec4..0f10549285 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.24 1998/10/08 18:30:16 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.25 1999/01/17 06:18:54 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -338,7 +338,11 @@ SetCharSet() map_file = (char *) malloc((strlen(DataDir) + strlen(p) + 2) * sizeof(char)); sprintf(map_file, "%s/%s", DataDir, p); +#ifndef __CYGWIN32__ file = fopen(map_file, "r"); +#else + file = fopen(map_file, "rb"); +#endif if (file == NULL) return; eof = false; diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c index 12bbcf3034..c23dd15bce 100644 --- a/src/backend/utils/init/postinit.c +++ b/src/backend/utils/init/postinit.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.35 1998/09/01 04:33:17 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/init/postinit.c,v 1.36 1999/01/17 06:18:55 momjian Exp $ * * NOTES * InitPostgres() is the function called from PostgresMain @@ -176,7 +176,11 @@ VerifySystemDatabase() errormsg[0] = '\0'; +#ifndef __CYGWIN32__ if ((fd = open(DataDir, O_RDONLY, 0)) == -1) +#else + if ((fd = open(DataDir, O_RDONLY | O_DIROPEN, 0)) == -1) +#endif sprintf(errormsg, "Database system does not exist. " "PGDATA directory '%s' not found.\n\tNormally, you " "create a database system by running initdb.", @@ -212,7 +216,11 @@ VerifyMyDatabase() name = DatabaseName; myPath = DatabasePath; +#ifndef __CYGWIN32__ if ((fd = open(myPath, O_RDONLY, 0)) == -1) +#else + if ((fd = open(myPath, O_RDONLY | O_DIROPEN, 0)) == -1) +#endif sprintf(errormsg, "Database '%s' does not exist." "\n\tWe know this because the directory '%s' does not exist." diff --git a/src/backend/utils/misc/database.c b/src/backend/utils/misc/database.c index 60f6499872..dadf6a8173 100644 --- a/src/backend/utils/misc/database.c +++ b/src/backend/utils/misc/database.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.21 1998/11/27 19:52:29 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/misc/Attic/database.c,v 1.22 1999/01/17 06:18:58 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -198,7 +198,11 @@ GetRawDatabaseInfo(char *name, int4 *owner, Oid *db_id, char *path, int *encodin sprintf(dbfname, "%s%cpg_database", DataDir, SEP_CHAR); fileflags = O_RDONLY; +#ifndef __CYGWIN32__ if ((dbfd = open(dbfname, O_RDONLY, 0)) < 0) +#else + if ((dbfd = open(dbfname, O_RDONLY | O_BINARY, 0)) < 0) +#endif elog(FATAL, "Cannot open %s", dbfname); pfree(dbfname); diff --git a/src/backend/utils/misc/trace.c b/src/backend/utils/misc/trace.c index def34162f2..1ac48bc82d 100644 --- a/src/backend/utils/misc/trace.c +++ b/src/backend/utils/misc/trace.c @@ -345,7 +345,11 @@ read_pg_options(SIGNAL_ARGS) } snprintf(buffer, BUF_SIZE - 1, "%s/%s", DataDir, "pg_options"); +#ifndef __CYGWIN32__ if ((fd = open(buffer, O_RDONLY)) < 0) +#else + if ((fd = open(buffer, O_RDONLY | O_BINARY)) < 0) +#endif return; if ((n = read(fd, buffer, BUF_SIZE - 1)) > 0) diff --git a/src/backend/utils/sort/psort.c b/src/backend/utils/sort/psort.c index 76daa0351e..09bbd877ef 100644 --- a/src/backend/utils/sort/psort.c +++ b/src/backend/utils/sort/psort.c @@ -4,7 +4,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: psort.c,v 1.46 1999/01/01 04:48:49 momjian Exp $ + * $Id: psort.c,v 1.47 1999/01/17 06:19:02 momjian Exp $ * * NOTES * Sorts the first relation into the second relation. @@ -1033,8 +1033,11 @@ gettape() StrNCpy(tp->tl_name, uniqueName, MAXPGPATH); - +#ifndef __CYGWIN32__ file = AllocateFile(tp->tl_name, "w+"); +#else + file = AllocateFile(tp->tl_name, "w+b"); +#endif if (file == NULL) elog(ERROR, "Open: %s in %s line %d, %s", tp->tl_name, __FILE__, __LINE__, strerror(errno)); |
