From bf06825e31de28692f3976e729c2700274d9b578 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 14 Sep 2004 03:39:55 +0000 Subject: [PATCH] Win32 compile fixes for pgbench, pgcrypto, and tsearch. Claudio Natoli --- contrib/pgbench/pgbench.c | 14 +++++++++----- contrib/pgcrypto/Makefile | 7 ++++++- contrib/tsearch/gistidx.h | 3 +++ contrib/tsearch/rewrite.c | 3 +++ contrib/tsearch/txtidx.c | 26 +++++++++++++------------- 5 files changed, 34 insertions(+), 19 deletions(-) diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c index cf1880f242..4dbf0d3fcf 100644 --- a/contrib/pgbench/pgbench.c +++ b/contrib/pgbench/pgbench.c @@ -1,5 +1,5 @@ /* - * $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.32 2004/08/29 05:06:36 momjian Exp $ + * $PostgreSQL: pgsql/contrib/pgbench/pgbench.c,v 1.33 2004/09/14 03:39:23 tgl Exp $ * * pgbench: a simple TPC-B like benchmark program for PostgreSQL * written by Tatsuo Ishii @@ -44,6 +44,10 @@ extern char *optarg; extern int optind; +#ifdef WIN32 +#undef select +#endif + /******************************************************************** * some configurable parameters */ @@ -705,7 +709,7 @@ main(int argc, char **argv) int nsocks; /* return from select(2) */ int maxsock; /* max socket number to be waited */ -#ifndef __CYGWIN__ +#if !(defined(__CYGWIN__) || defined(__MINGW32__)) struct rlimit rlim; #endif @@ -755,7 +759,7 @@ main(int argc, char **argv) fprintf(stderr, "invalid number of clients: %d\n", nclients); exit(1); } -#ifndef __CYGWIN__ +#if !(defined(__CYGWIN__) || defined(__MINGW32__)) #ifdef RLIMIT_NOFILE /* most platform uses RLIMIT_NOFILE */ if (getrlimit(RLIMIT_NOFILE, &rlim) == -1) { @@ -772,7 +776,7 @@ main(int argc, char **argv) fprintf(stderr, "Use limit/ulimt to increase the limit before using pgbench.\n"); exit(1); } -#endif /* #ifndef __CYGWIN__ */ +#endif /* #if !(defined(__CYGWIN__) || defined(__MINGW32__)) */ break; case 'C': is_connect = 1; @@ -935,7 +939,7 @@ main(int argc, char **argv) /* set random seed */ gettimeofday(&tv1, 0); - srand((uint) tv1.tv_usec); + srand((unsigned int) tv1.tv_usec); /* get start up time */ gettimeofday(&tv1, 0); diff --git a/contrib/pgcrypto/Makefile b/contrib/pgcrypto/Makefile index 429c837925..c210664e0d 100644 --- a/contrib/pgcrypto/Makefile +++ b/contrib/pgcrypto/Makefile @@ -1,5 +1,5 @@ # -# $PostgreSQL: pgsql/contrib/pgcrypto/Makefile,v 1.11 2004/08/20 20:13:06 momjian Exp $ +# $PostgreSQL: pgsql/contrib/pgcrypto/Makefile,v 1.12 2004/09/14 03:39:48 tgl Exp $ # # either 'builtin', 'mhash', 'openssl' @@ -82,6 +82,11 @@ include $(top_builddir)/src/Makefile.global include $(top_srcdir)/contrib/contrib-global.mk endif +# to make ws2_32.lib the last library (must occur after definition of PORTNAME) +ifeq ($(PORTNAME),win32) +SHLIB_LINK += -lwsock32 -lws2_32 +endif + rijndael.o: rijndael.tbl diff --git a/contrib/tsearch/gistidx.h b/contrib/tsearch/gistidx.h index db1b501e92..98e974456e 100644 --- a/contrib/tsearch/gistidx.h +++ b/contrib/tsearch/gistidx.h @@ -33,6 +33,9 @@ typedef char *BITVECP; #define GETBIT(x,i) ( (GETBYTE(x,i) >> ( (i) % BITBYTE )) & 0x01 ) #define abs(a) ((a) < (0) ? -(a) : (a)) +#ifdef min +#undef min +#endif #define min(a,b) ((a) < (b) ? (a) : (b)) #define HASHVAL(val) (((unsigned int)(val)) % SIGLENBIT) #define HASH(sign, val) SETBIT((sign), HASHVAL(val)) diff --git a/contrib/tsearch/rewrite.c b/contrib/tsearch/rewrite.c index 9d4c885434..3f6588e781 100644 --- a/contrib/tsearch/rewrite.c +++ b/contrib/tsearch/rewrite.c @@ -174,6 +174,9 @@ clean_NOT(ITEM * ptr, int4 *len) return plaintree(clean_NOT_intree(root), len); } +#ifdef V_UNKNOWN /* apparently Windows defines this :-( */ +#undef V_UNKNOWN +#endif #define V_UNKNOWN 0 #define V_TRUE 1 #define V_FALSE 2 diff --git a/contrib/tsearch/txtidx.c b/contrib/tsearch/txtidx.c index 709a01abc1..deab0bcd1d 100644 --- a/contrib/tsearch/txtidx.c +++ b/contrib/tsearch/txtidx.c @@ -342,11 +342,11 @@ typedef struct { uint16 len; char *word; -} WORD; +} WORD_T; /* WORD type defined on win32; we'll use WORD_T */ typedef struct { - WORD *words; + WORD_T *words; int4 lenwords; int4 curwords; } PRSTEXT; @@ -369,7 +369,7 @@ parsetext(PRSTEXT * prs, char *buf, int4 buflen) if (prs->curwords == prs->lenwords) { prs->lenwords *= 2; - prs->words = (WORD *) repalloc((void *) prs->words, prs->lenwords * sizeof(WORD)); + prs->words = (WORD_T *) repalloc((void *) prs->words, prs->lenwords * sizeof(WORD_T)); } if (tokenlen > 0xffff) { @@ -410,18 +410,18 @@ parsetext(PRSTEXT * prs, char *buf, int4 buflen) static int compareWORD(const void *a, const void *b) { - if (((WORD *) a)->len == ((WORD *) b)->len) + if (((WORD_T *) a)->len == ((WORD_T *) b)->len) return strncmp( - ((WORD *) a)->word, - ((WORD *) b)->word, - ((WORD *) b)->len); - return (((WORD *) a)->len > ((WORD *) b)->len) ? 1 : -1; + ((WORD_T *) a)->word, + ((WORD_T *) b)->word, + ((WORD_T *) b)->len); + return (((WORD_T *) a)->len > ((WORD_T *) b)->len) ? 1 : -1; } static int -uniqueWORD(WORD * a, int4 l) +uniqueWORD(WORD_T * a, int4 l) { - WORD *ptr, + WORD_T *ptr, *res; if (l == 1) @@ -430,7 +430,7 @@ uniqueWORD(WORD * a, int4 l) res = a; ptr = a + 1; - qsort((void *) a, l, sizeof(WORD), compareWORD); + qsort((void *) a, l, sizeof(WORD_T), compareWORD); while (ptr - a < l) { @@ -500,7 +500,7 @@ txt2txtidx(PG_FUNCTION_ARGS) prs.lenwords = 32; prs.curwords = 0; - prs.words = (WORD *) palloc(sizeof(WORD) * prs.lenwords); + prs.words = (WORD_T *) palloc(sizeof(WORD_T) * prs.lenwords); initmorph(); parsetext(&prs, VARDATA(in), VARSIZE(in) - VARHDRSZ); @@ -564,7 +564,7 @@ tsearch(PG_FUNCTION_ARGS) errmsg("could not find txtidx_field"))); prs.lenwords = 32; prs.curwords = 0; - prs.words = (WORD *) palloc(sizeof(WORD) * prs.lenwords); + prs.words = (WORD_T *) palloc(sizeof(WORD_T) * prs.lenwords); initmorph(); /* find all words in indexable column */ -- 2.11.0