Index: configure =================================================================== RCS file: /cvsroot/pgsql-server/configure,v retrieving revision 1.258 diff -c -c -r1.258 configure *** configure 10 May 2003 04:03:36 -0000 1.258 --- configure 15 May 2003 16:16:51 -0000 *************** *** 1393,1399 **** hpux*) template=hpux ;; irix*) template=irix5 ;; linux*) template=linux ;; ! mingw*) template=win ;; netbsd*) template=netbsd ;; nextstep*) template=nextstep ;; openbsd*) template=openbsd ;; --- 1393,1399 ---- hpux*) template=hpux ;; irix*) template=irix5 ;; linux*) template=linux ;; ! mingw*) template=win32 ;; netbsd*) template=netbsd ;; nextstep*) template=nextstep ;; openbsd*) template=openbsd ;; *************** *** 2808,2814 **** done IFS=$ac_save_IFS - # # Tcl/Tk # --- 2808,2813 ---- *************** *** 5236,5241 **** --- 5235,5299 ---- fi + + echo "$as_me:$LINENO: checking for main in -lwsock32" >&5 + echo $ECHO_N "checking for main in -lwsock32... $ECHO_C" >&6 + if test "${ac_cv_lib_wsock32_main+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS + LIBS="-lwsock32 $LIBS" + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" + #include "confdefs.h" + + + #ifdef F77_DUMMY_MAIN + # ifdef __cplusplus + extern "C" + # endif + int F77_DUMMY_MAIN() { return 1; } + #endif + int + main () + { + main (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_wsock32_main=yes + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_lib_wsock32_main=no + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_wsock32_main" >&5 + echo "${ECHO_T}$ac_cv_lib_wsock32_main" >&6 + if test $ac_cv_lib_wsock32_main = yes; then + cat >>confdefs.h <<_ACEOF + #define HAVE_LIBWSOCK32 1 + _ACEOF + + LIBS="-lwsock32 $LIBS" + + fi + echo "$as_me:$LINENO: checking for library containing getopt_long" >&5 echo $ECHO_N "checking for library containing getopt_long... $ECHO_C" >&6 if test "${ac_cv_search_getopt_long+set}" = set; then *************** *** 6072,6077 **** --- 6130,6214 ---- { (exit 1); exit 1; }; } fi + + for ac_func in gethostname + do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` + echo "$as_me:$LINENO: checking for $ac_func" >&5 + echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 + if eval "test \"\${$as_ac_var+set}\" = set"; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" + #include "confdefs.h" + /* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $ac_func (); below. */ + #include + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" + #endif + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char $ac_func (); + char (*f) (); + + #ifdef F77_DUMMY_MAIN + # ifdef __cplusplus + extern "C" + # endif + int F77_DUMMY_MAIN() { return 1; } + #endif + int + main () + { + /* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ + #if defined (__stub_$ac_func) || defined (__stub___$ac_func) + choke me + #else + f = $ac_func; + #endif + + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + eval "$as_ac_var=yes" + else + echo "$as_me: failed program was:" >&5 + cat conftest.$ac_ext >&5 + eval "$as_ac_var=no" + fi + rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext + fi + echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 + echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 + if test `eval echo '${'$as_ac_var'}'` = yes; then + cat >>confdefs.h <<_ACEOF + #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 + _ACEOF + + else + LIBOBJS="$LIBOBJS $ac_func.$ac_objext" + fi + done + + fi if test "$with_krb5" = yes ; then *************** *** 11080,11086 **** ! for ac_func in crypt fseeko gethostname getopt_long getrusage inet_aton random rint srandom strcasecmp strdup strerror strtol strtoul do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 --- 11217,11223 ---- ! for ac_func in crypt fseeko getopt getopt_long getrusage inet_aton random rint srandom strcasecmp strdup strerror strtol strtoul do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 *************** *** 11258,11266 **** esac # Win32 can't to rename or unlink on an open file ! case $host_os in win32*) ! LIBOBJS="$LIBOBJS dirmod.$ac_objext" ! LIBOBJS="$LIBOBJS opendir.$ac_objext" ;; esac if test "$with_readline" = yes; then --- 11395,11402 ---- esac # Win32 can't to rename or unlink on an open file ! case $host_os in win32*|mingw*) ! LIBOBJS="$LIBOBJS dirmod.$ac_objext" ;; esac if test "$with_readline" = yes; then Index: configure.in =================================================================== RCS file: /cvsroot/pgsql-server/configure.in,v retrieving revision 1.249 diff -c -c -r1.249 configure.in *** configure.in 10 May 2003 04:03:37 -0000 1.249 --- configure.in 15 May 2003 16:16:52 -0000 *************** *** 65,71 **** hpux*) template=hpux ;; irix*) template=irix5 ;; linux*) template=linux ;; ! mingw*) template=win ;; netbsd*) template=netbsd ;; nextstep*) template=nextstep ;; openbsd*) template=openbsd ;; --- 65,71 ---- hpux*) template=hpux ;; irix*) template=irix5 ;; linux*) template=linux ;; ! mingw*) template=win32 ;; netbsd*) template=netbsd ;; nextstep*) template=nextstep ;; openbsd*) template=openbsd ;; *************** *** 319,325 **** done IFS=$ac_save_IFS - # # Tcl/Tk # --- 319,324 ---- *************** *** 607,612 **** --- 606,612 ---- AC_CHECK_LIB(gen, main) AC_CHECK_LIB(PW, main) AC_CHECK_LIB(resolv, main) + AC_CHECK_LIB(wsock32, main) AC_SEARCH_LIBS(getopt_long, [getopt gnugetopt]) # QNX: AC_CHECK_LIB(unix, main) *************** *** 639,644 **** --- 639,645 ---- if test "$with_krb4" = yes ; then AC_CHECK_LIB(des, des_encrypt, [], [AC_MSG_ERROR([library 'des' is required for Kerberos 4])]) AC_CHECK_LIB(krb, krb_sendauth, [], [AC_MSG_ERROR([library 'krb' is required for Kerberos 4])]) + AC_REPLACE_FUNCS([gethostname]) fi if test "$with_krb5" = yes ; then *************** *** 839,845 **** AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break]) fi ! AC_REPLACE_FUNCS([crypt fseeko gethostname getopt_long getrusage inet_aton random rint srandom strcasecmp strdup strerror strtol strtoul]) # system's version of getaddrinfo(), if any, may be used only if we found # a definition for struct addrinfo; see notes in src/include/getaddrinfo.h --- 840,846 ---- AC_CHECK_FUNCS([fpclass fp_class fp_class_d class], [break]) fi ! AC_REPLACE_FUNCS([crypt fseeko getopt getopt_long getrusage inet_aton random rint srandom strcasecmp strdup strerror strtol strtoul]) # system's version of getaddrinfo(), if any, may be used only if we found # a definition for struct addrinfo; see notes in src/include/getaddrinfo.h *************** *** 862,870 **** esac # Win32 can't to rename or unlink on an open file ! case $host_os in win32*) ! AC_LIBOBJ(dirmod) ! AC_LIBOBJ(opendir) ;; esac if test "$with_readline" = yes; then --- 863,870 ---- esac # Win32 can't to rename or unlink on an open file ! case $host_os in win32*|mingw*) ! AC_LIBOBJ(dirmod) ;; esac if test "$with_readline" = yes; then Index: doc/TODO =================================================================== RCS file: /cvsroot/pgsql-server/doc/TODO,v retrieving revision 1.1031 diff -c -c -r1.1031 TODO *** doc/TODO 2 Apr 2003 22:44:50 -0000 1.1031 --- doc/TODO 15 May 2003 16:16:54 -0000 *************** *** 1,6 **** TODO list for PostgreSQL ======================== ! Last updated: Wed Apr 2 17:44:34 EST 2003 Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) --- 1,6 ---- TODO list for PostgreSQL ======================== ! Last updated: Thu May 15 12:10:39 EDT 2003 Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) Index: src/backend/libpq/be-secure.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/libpq/be-secure.c,v retrieving revision 1.31 diff -c -c -r1.31 be-secure.c *** src/backend/libpq/be-secure.c 25 Apr 2003 04:37:23 -0000 1.31 --- src/backend/libpq/be-secure.c 15 May 2003 16:16:55 -0000 *************** *** 85,100 **** #include "libpq/libpq.h" #include "miscadmin.h" - #ifdef WIN32 - #include "win32.h" - #else #include #include #include #include #ifdef HAVE_NETINET_TCP_H #include - #endif #include #endif --- 85,96 ---- Index: src/backend/libpq/pqcomm.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/libpq/pqcomm.c,v retrieving revision 1.152 diff -c -c -r1.152 pqcomm.c *** src/backend/libpq/pqcomm.c 25 Apr 2003 01:24:00 -0000 1.152 --- src/backend/libpq/pqcomm.c 15 May 2003 16:16:56 -0000 *************** *** 357,362 **** --- 357,365 ---- Assert(Unix_socket_group); if (Unix_socket_group[0] != '\0') { + #ifdef WIN32 + elog(FATAL, "Config value 'unix_socket_group' not supported on this platform"); + #else char *endptr; unsigned long int val; gid_t gid; *************** *** 385,390 **** --- 388,394 ---- sock_path, strerror(errno)); return STATUS_ERROR; } + #endif } if (chmod(sock_path, Unix_socket_permissions) == -1) Index: src/backend/main/main.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/main/main.c,v retrieving revision 1.56 diff -c -c -r1.56 main.c *** src/backend/main/main.c 8 Nov 2002 20:23:56 -0000 1.56 --- src/backend/main/main.c 15 May 2003 16:16:56 -0000 *************** *** 159,171 **** strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0))) { /* * Make sure we are not running as root. * * BeOS currently runs everything as root :-(, so this check must be * temporarily disabled there... */ - #ifndef __BEOS__ if (geteuid() == 0) { fprintf(stderr, gettext( --- 159,172 ---- strcmp(argv[1], "--version") == 0 || strcmp(argv[1], "-V") == 0))) { + #ifndef WIN32 + #ifndef __BEOS__ /* * Make sure we are not running as root. * * BeOS currently runs everything as root :-(, so this check must be * temporarily disabled there... */ if (geteuid() == 0) { fprintf(stderr, gettext( *************** *** 176,182 **** )); exit(1); } ! #endif /* __BEOS__ */ /* * Also make sure that real and effective uids are the same. --- 177,183 ---- )); exit(1); } ! #endif /* !__BEOS__ */ /* * Also make sure that real and effective uids are the same. *************** *** 193,198 **** --- 194,200 ---- argv[0]); exit(1); } + #endif /* !WIN32 */ } /* *************** *** 221,226 **** --- 223,229 ---- * specifying current userid as the "authenticated" Postgres user * name. */ + #ifndef WIN32 pw = getpwuid(geteuid()); if (pw == NULL) { *************** *** 230,235 **** --- 233,250 ---- } /* Allocate new memory because later getpwuid() calls can overwrite it */ pw_name_persist = strdup(pw->pw_name); + #else + { + long namesize = 256 /* UNLEN */ + 1; + + pw_name_persist = malloc(namesize); + if (!GetUserName(pw_name_persist, &namesize)) + { + fprintf(stderr, "%s: GetUserName failed\n", argv[0]); + exit(1); + } + } + #endif exit(PostgresMain(argc, new_argv, pw_name_persist)); } Index: src/backend/parser/gram.y =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/parser/gram.y,v retrieving revision 2.413 diff -c -c -r2.413 gram.y *** src/backend/parser/gram.y 4 May 2003 00:03:55 -0000 2.413 --- src/backend/parser/gram.y 15 May 2003 16:17:01 -0000 *************** *** 322,333 **** */ /* ordinary key words in alphabetical order */ ! %token ABORT_P ABSOLUTE ACCESS ACTION ADD AFTER AGGREGATE ALL ALTER ANALYSE ANALYZE AND ANY ARRAY AS ASC ASSERTION ASSIGNMENT AT AUTHORIZATION BACKWARD BEFORE BEGIN_P BETWEEN BIGINT BINARY BIT ! BOOLEAN BOTH BY CACHE CALLED CASCADE CASE CAST CHAIN CHAR_P CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLOSE --- 322,333 ---- */ /* ordinary key words in alphabetical order */ ! %token ABORT_P ABSOLUTE_P ACCESS ACTION ADD AFTER AGGREGATE ALL ALTER ANALYSE ANALYZE AND ANY ARRAY AS ASC ASSERTION ASSIGNMENT AT AUTHORIZATION BACKWARD BEFORE BEGIN_P BETWEEN BIGINT BINARY BIT ! BOOLEAN_P BOTH BY CACHE CALLED CASCADE CASE CAST CHAIN CHAR_P CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLOSE *************** *** 336,344 **** CREATEUSER CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE ! DATABASE DAY_P DEALLOCATE DEC DECIMAL DECLARE DEFAULT DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS ! DESC DISTINCT DO DOMAIN_P DOUBLE DROP EACH ELSE ENCODING ENCRYPTED END_P ESCAPE EXCEPT EXCLUSIVE EXECUTE EXISTS EXPLAIN EXTERNAL EXTRACT --- 336,344 ---- CREATEUSER CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE ! DATABASE DAY_P DEALLOCATE DEC DECIMAL_P DECLARE DEFAULT DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS ! DESC DISTINCT DO DOMAIN_P DOUBLE_P DROP EACH ELSE ENCODING ENCRYPTED END_P ESCAPE EXCEPT EXCLUSIVE EXECUTE EXISTS EXPLAIN EXTERNAL EXTRACT *************** *** 351,358 **** HANDLER HAVING HOLD HOUR_P ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCREMENT ! INDEX INHERITS INITIALLY INNER_P INOUT INPUT ! INSENSITIVE INSERT INSTEAD INT INTEGER INTERSECT INTERVAL INTO INVOKER IS ISNULL ISOLATION JOIN --- 351,358 ---- HANDLER HAVING HOLD HOUR_P ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCREMENT ! INDEX INHERITS INITIALLY INNER_P INOUT INPUT_P ! INSENSITIVE INSERT INSTEAD INT_P INTEGER INTERSECT INTERVAL INTO INVOKER IS ISNULL ISOLATION JOIN *************** *** 373,390 **** ORDER OUT_P OUTER_P OVERLAPS OVERLAY OWNER PARTIAL PASSWORD PATH_P PENDANT PLACING POSITION ! PRECISION PRESERVE PREPARE PRIMARY PRIOR PRIVILEGES PROCEDURAL ! PROCEDURE ! READ REAL RECHECK REFERENCES REINDEX RELATIVE RENAME REPLACE RESET RESTART RESTRICT RETURNS REVOKE RIGHT ROLLBACK ROW ROWS RULE SCHEMA SCROLL SECOND_P SECURITY SELECT SEQUENCE SERIALIZABLE SESSION SESSION_USER SET SETOF SHARE SHOW SIMILAR SIMPLE SMALLINT SOME STABLE START STATEMENT ! STATISTICS STDIN STDOUT STORAGE STRICT SUBSTRING ! SYSID TABLE TEMP TEMPLATE TEMPORARY THEN TIME TIMESTAMP TO TOAST TRAILING TRANSACTION TREAT TRIGGER TRIM TRUE_P --- 373,389 cvs server: src/backend/port/dynloader/win.c was removed, no comparison available---- ORDER OUT_P OUTER_P OVERLAPS OVERLAY OWNER PARTIAL PASSWORD PATH_P PENDANT PLACING POSITION ! PRECISION PRESERVE PREPARE PRIMARY ! PRIOR PRIVILEGES PROCEDURAL PROCEDURE ! READ REAL RECHECK REFERENCES REINDEX RELATIVE_P RENAME REPLACE RESET RESTART RESTRICT RETURNS REVOKE RIGHT ROLLBACK ROW ROWS RULE SCHEMA SCROLL SECOND_P SECURITY SELECT SEQUENCE SERIALIZABLE SESSION SESSION_USER SET SETOF SHARE SHOW SIMILAR SIMPLE SMALLINT SOME STABLE START STATEMENT ! STATISTICS STDIN STDOUT STORAGE STRICT_P SUBSTRING SYSID TABLE TEMP TEMPLATE TEMPORARY THEN TIME TIMESTAMP TO TOAST TRAILING TRANSACTION TREAT TRIGGER TRIM TRUE_P *************** *** 2675,2688 **** n->howMany = -1; $$ = (Node *)n; } ! | ABSOLUTE fetch_count { FetchStmt *n = makeNode(FetchStmt); n->direction = FETCH_ABSOLUTE; n->howMany = $2; $$ = (Node *)n; } ! | RELATIVE fetch_count { FetchStmt *n = makeNode(FetchStmt); n->direction = FETCH_RELATIVE; --- 2674,2687 ---- n->howMany = -1; $$ = (Node *)n; } ! | ABSOLUTE_P fetch_count { FetchStmt *n = makeNode(FetchStmt); n->direction = FETCH_ABSOLUTE; n->howMany = $2; $$ = (Node *)n; } ! | RELATIVE_P fetch_count { FetchStmt *n = makeNode(FetchStmt); n->direction = FETCH_RELATIVE; *************** *** 3146,3160 **** { $$ = makeDefElem("volatility", (Node *)makeString("volatile")); } ! | CALLED ON NULL_P INPUT { $$ = makeDefElem("strict", (Node *)makeInteger(FALSE)); } ! | RETURNS NULL_P ON NULL_P INPUT { $$ = makeDefElem("strict", (Node *)makeInteger(TRUE)); } ! | STRICT { $$ = makeDefElem("strict", (Node *)makeInteger(TRUE)); } --- 3145,3159 ---- { $$ = makeDefElem("volatility", (Node *)makeString("volatile")); } ! | CALLED ON NULL_P INPUT_P { $$ = makeDefElem("strict", (Node *)makeInteger(FALSE)); } ! | RETURNS NULL_P ON NULL_P INPUT_P { $$ = makeDefElem("strict", (Node *)makeInteger(TRUE)); } ! | STRICT_P { $$ = makeDefElem("strict", (Node *)makeInteger(TRUE)); } *************** *** 5077,5083 **** * Provide real DECIMAL() and NUMERIC() implementations now - Jan 1998-12-30 * - thomas 1997-09-18 */ ! Numeric: INT { $$ = SystemTypeName("int4"); } --- 5076,5082 ---- * Provide real DECIMAL() and NUMERIC() implementations now - Jan 1998-12-30 * - thomas 1997-09-18 */ ! Numeric: INT_P { $$ = SystemTypeName("int4"); } *************** *** 5101,5111 **** { $$ = $2; } ! | DOUBLE PRECISION { $$ = SystemTypeName("float8"); } ! | DECIMAL opt_decimal { $$ = SystemTypeName("numeric"); $$->typmod = $2; --- 5100,5110 ---- { $$ = $2; } ! | DOUBLE_P PRECISION { $$ = SystemTypeName("float8"); } ! | DECIMAL_P opt_decimal { $$ = SystemTypeName("numeric"); $$->typmod = $2; *************** *** 5120,5126 **** $$ = SystemTypeName("numeric"); $$->typmod = $2; } ! | BOOLEAN { $$ = SystemTypeName("bool"); } --- 5119,5125 ---- $$ = SystemTypeName("numeric"); $$->typmod = $2; } ! | BOOLEAN_P { $$ = SystemTypeName("bool"); } *************** *** 7179,7185 **** */ unreserved_keyword: ABORT_P ! | ABSOLUTE | ACCESS | ACTION | ADD --- 7178,7184 ---- */ unreserved_keyword: ABORT_P ! | ABSOLUTE_P | ACCESS | ACTION | ADD *************** *** 7222,7228 **** | DELIMITER | DELIMITERS | DOMAIN_P ! | DOUBLE | DROP | EACH | ENCODING --- 7221,7227 ---- | DELIMITER | DELIMITERS | DOMAIN_P ! | DOUBLE_P | DROP | EACH | ENCODING *************** *** 7248,7254 **** | INDEX | INHERITS | INOUT ! | INPUT | INSENSITIVE | INSERT | INSTEAD --- 7247,7253 ---- | INDEX | INHERITS | INOUT ! | INPUT_P | INSENSITIVE | INSERT | INSTEAD *************** *** 7299,7305 **** | READ | RECHECK | REINDEX ! | RELATIVE | RENAME | REPLACE | RESET --- 7298,7304 ---- | READ | RECHECK | REINDEX ! | RELATIVE_P | RENAME | REPLACE | RESET *************** *** 7328,7335 **** | STDIN | STDOUT | STORAGE - | STRICT | SYSID | TEMP | TEMPLATE | TEMPORARY --- 7327,7334 ---- | STDIN | STDOUT | STORAGE | SYSID + | STRICT_P | TEMP | TEMPLATE | TEMPORARY *************** *** 7374,7390 **** col_name_keyword: BIGINT | BIT ! | BOOLEAN | CHAR_P | CHARACTER | COALESCE | CONVERT | DEC ! | DECIMAL | EXISTS | EXTRACT | FLOAT_P ! | INT | INTEGER | INTERVAL | NCHAR --- 7373,7389 ---- col_name_keyword: BIGINT | BIT ! | BOOLEAN_P | CHAR_P | CHARACTER | COALESCE | CONVERT | DEC ! | DECIMAL_P | EXISTS | EXTRACT | FLOAT_P ! | INT_P | INTEGER | INTERVAL | NCHAR Index: src/backend/parser/keywords.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/parser/keywords.c,v retrieving revision 1.138 diff -c -c -r1.138 keywords.c *** src/backend/parser/keywords.c 8 Apr 2003 23:20:02 -0000 1.138 --- src/backend/parser/keywords.c 15 May 2003 16:17:01 -0000 *************** *** 31,37 **** static const ScanKeyword ScanKeywords[] = { /* name, value */ {"abort", ABORT_P}, ! {"absolute", ABSOLUTE}, {"access", ACCESS}, {"action", ACTION}, {"add", ADD}, --- 31,37 ---- static const ScanKeyword ScanKeywords[] = { /* name, value */ {"abort", ABORT_P}, ! {"absolute", ABSOLUTE_P}, {"access", ACCESS}, {"action", ACTION}, {"add", ADD}, *************** *** 57,63 **** {"bigint", BIGINT}, {"binary", BINARY}, {"bit", BIT}, ! {"boolean", BOOLEAN}, {"both", BOTH}, {"by", BY}, {"cache", CACHE}, --- 57,63 ---- {"bigint", BIGINT}, {"binary", BINARY}, {"bit", BIT}, ! {"boolean", BOOLEAN_P}, {"both", BOTH}, {"by", BY}, {"cache", CACHE}, *************** *** 99,105 **** {"day", DAY_P}, {"deallocate", DEALLOCATE}, {"dec", DEC}, ! {"decimal", DECIMAL}, {"declare", DECLARE}, {"default", DEFAULT}, {"deferrable", DEFERRABLE}, --- 99,105 ---- {"day", DAY_P}, {"deallocate", DEALLOCATE}, {"dec", DEC}, ! {"decimal", DECIMAL_P}, {"declare", DECLARE}, {"default", DEFAULT}, {"deferrable", DEFERRABLE}, *************** *** 112,118 **** {"distinct", DISTINCT}, {"do", DO}, {"domain", DOMAIN_P}, ! {"double", DOUBLE}, {"drop", DROP}, {"each", EACH}, {"else", ELSE}, --- 112,118 ---- {"distinct", DISTINCT}, {"do", DO}, {"domain", DOMAIN_P}, ! {"double", DOUBLE_P}, {"drop", DROP}, {"each", EACH}, {"else", ELSE}, *************** *** 157,167 **** {"initially", INITIALLY}, {"inner", INNER_P}, {"inout", INOUT}, ! {"input", INPUT}, {"insensitive", INSENSITIVE}, {"insert", INSERT}, {"instead", INSTEAD}, ! {"int", INT}, {"integer", INTEGER}, {"intersect", INTERSECT}, {"interval", INTERVAL}, --- 157,167 ---- {"initially", INITIALLY}, {"inner", INNER_P}, {"inout", INOUT}, ! {"input", INPUT_P}, {"insensitive", INSENSITIVE}, {"insert", INSERT}, {"instead", INSTEAD}, ! {"int", INT_P}, {"integer", INTEGER}, {"intersect", INTERSECT}, {"interval", INTERVAL}, *************** *** 246,252 **** {"recheck", RECHECK}, {"references", REFERENCES}, {"reindex", REINDEX}, ! {"relative", RELATIVE}, {"rename", RENAME}, {"replace", REPLACE}, {"reset", RESET}, --- 246,252 ---- {"recheck", RECHECK}, {"references", REFERENCES}, {"reindex", REINDEX}, ! {"relative", RELATIVE_P}, {"rename", RENAME}, {"replace", REPLACE cvs server: src/backend/port/dynloader/win.h was removed, no comparison available cvs server: src/backend/port/dynloader/win32.c is a new entry, no comparison available cvs server: src/backend/port/dynloader/win32.h is a new entry, no comparison available }, {"reset", RESET}, *************** *** 283,289 **** {"stdin", STDIN}, {"stdout", STDOUT}, {"storage", STORAGE}, ! {"strict", STRICT}, {"substring", SUBSTRING}, {"sysid", SYSID}, {"table", TABLE}, --- 283,289 ---- {"stdin", STDIN}, {"stdout", STDOUT}, {"storage", STORAGE}, ! {"strict", STRICT_P}, {"substring", SUBSTRING}, {"sysid", SYSID}, {"table", TABLE}, Index: src/backend/port/Makefile =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/port/Makefile,v retrieving revision 1.18 diff -c -c -r1.18 Makefile *** src/backend/port/Makefile 27 Jul 2002 20:10:05 -0000 1.18 --- src/backend/port/Makefile 15 May 2003 16:17:01 -0000 *************** *** 26,32 **** OBJS+=$(TAS) ifeq ($(PORTNAME), qnx4) ! OBJS+=getrusage.o qnx4/SUBSYS.o endif ifeq ($(PORTNAME), beos) OBJS+=beos/SUBSYS.o --- 26,32 ---- OBJS+=$(TAS) ifeq ($(PORTNAME), qnx4) ! OBJS+=qnx4/SUBSYS.o endif ifeq ($(PORTNAME), beos) OBJS+=beos/SUBSYS.o *************** *** 34,39 **** --- 34,42 ---- ifeq ($(PORTNAME), darwin) OBJS+=darwin/SUBSYS.o endif + ifeq ($(PORTNAME), win32) + OBJS+=win32/SUBSYS.o + endif all: SUBSYS.o *************** *** 55,60 **** --- 58,68 ---- darwin.dir: $(MAKE) -C darwin all + win32/SUBSYS.o: win32.dir + + win32.dir: + $(MAKE) -C win32 all + tas.o: tas.s $(CC) $(CFLAGS) -c $< *************** *** 67,69 **** --- 75,79 ---- $(MAKE) -C beos clean $(MAKE) -C darwin clean $(MAKE) -C qnx4 clean + $(MAKE) -C win32 clean + Index: src/backend/port/win32/sema.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/port/win32/sema.c,v retrieving revision 1.1 diff -c -c -r1.1 sema.c *** src/backend/port/win32/sema.c 24 Apr 2003 21:23:01 -0000 1.1 --- src/backend/port/win32/sema.c 15 May 2003 16:17:01 -0000 *************** *** 10,16 **** #include "postgres.h" #include "storage/shmem.h" - #include "sema.h" #include --- 10,15 ---- *************** *** 131,137 **** Size sem_set_size = sizeof(win32_sem_set_hdr) + semNum * (sizeof(HANDLE) + sizeof(int)); HANDLE *sem_handles = NULL; int *sem_counts = NULL; ! sec_attrs.nLength = sizeof(sec_attrs); sec_attrs.lpSecurityDescriptor = NULL; sec_attrs.bInheritHandle = TRUE; --- 130,137 ---- Size sem_set_size = sizeof(win32_sem_set_hdr) + semNum * (sizeof(HANDLE) + sizeof(int)); HANDLE *sem_handles = NULL; int *sem_counts = NULL; ! int i; ! sec_attrs.nLength = sizeof(sec_attrs); sec_attrs.lpSecurityDescriptor = NULL; sec_attrs.bInheritHandle = TRUE; *************** *** 158,164 **** sem_handles = (HANDLE *) ((off_t) new_set + new_set->m_semaphoreHandles); sem_counts = (int *) ((off_t) new_set + new_set->m_semaphoreCounts); ! for (int i = 0; i < semNum && ans; ++i) { strcpy(num_part, _itoa(i, cur_num, 10)); --- 158,164 ---- sem_handles = (HANDLE *) ((off_t) new_set + new_set->m_semaphoreHandles); sem_counts = (int *) ((off_t) new_set + new_set->m_semaphoreCounts); ! for (i = 0; i < semNum && ans; ++i) { strcpy(num_part, _itoa(i, cur_num, 10)); *************** *** 186,193 **** return MAKE_OFFSET(new_set); else { /* Blow away what we've got right now... */ ! for (int i = 0; i < semNum; ++i) { if (sem_handles[i]) CloseHandle(sem_handles[i]); --- 186,194 ---- return MAKE_OFFSET(new_set); else { + int i; /* Blow away what we've got right now... */ ! for (i = 0; i < semNum; ++i) { if (sem_handles[i]) CloseHandle(sem_handles[i]); Index: src/backend/postmaster/pgstat.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/postmaster/pgstat.c,v retrieving revision 1.35 diff -c -c -r1.35 pgstat.c *** src/backend/postmaster/pgstat.c 27 Apr 2003 20:09:44 -0000 1.35 --- src/backend/postmaster/pgstat.c 15 May 2003 16:17:03 -0000 *************** *** 217,223 **** * messages will be discarded; backends won't block waiting to send * messages to the collector. */ ! if (fcntl(pgStatSock, F_SETFL, O_NONBLOCK) < 0) { elog(LOG, "PGSTAT: fcntl() failed: %m"); goto startup_failed; --- 217,223 ---- * messages will be discarded; backends won't block waiting to send * messages to the collector. */ ! if (FCNTL_NONBLOCK(pgStatSock) < 0) { elog(LOG, "PGSTAT: fcntl() failed: %m"); goto startup_failed; *************** *** 1520,1526 **** * Set the write pipe to nonblock mode, so that we cannot block when * the collector falls behind. */ ! if (fcntl(writePipe, F_SETFL, O_NONBLOCK) < 0) { elog(LOG, "PGSTATBUFF: fcntl() failed: %m"); exit(1); --- 1520,1526 ---- * Set the write pipe to nonblock mode, so that we cannot block when * the collector falls behind. */ ! if (FCNTL_NONBLOCK(writePipe) < 0) { elog(LOG, "PGSTATBUFF: fcntl() failed: %m"); exit(1); Index: src/backend/postmaster/postmaster.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/postmaster/postmaster.c,v retrieving revision 1.327 diff -c -c -r1.327 postmaster.c *** src/backend/postmaster/postmaster.c 10 May 2003 18:15:42 -0000 1.327 --- src/backend/postmaster/postmaster.c 15 May 2003 16:17:05 -0000 *************** *** 211,216 **** --- 211,221 ---- bool Log_connections = false; bool Db_user_namespace = false; + /* For FNCTL_NONBLOCK */ + #if defined(WIN32) || defined(__BEOS__) + long ioctlsocket_ret; + #endif + /* list of library:init-function to be preloaded */ char *preload_libraries_string = NULL; *************** *** 1708,1713 **** --- 1713,1721 ---- { int save_errno = errno; + #ifdef WIN32 + #warning fix waidpid for Win32 + #else #ifdef HAVE_WAITPID int status; /* backend exit status */ *************** *** 1807,1812 **** --- 1815,1821 ---- CleanupProc(pid, exitstatus); } /* loop over pending child-death reports */ + #endif if (FatalError) { *************** *** 2141,2163 **** { char buffer[1000]; - #ifdef __BEOS__ - int on = 1; - #endif - /* Format the error message packet */ snprintf(buffer, sizeof(buffer), "E%s%s\n", gettext("Server process fork() failed: "), strerror(errnum)); /* Set port to non-blocking. Don't do send() if this fails */ ! #ifdef __BEOS__ ! if (ioctl(port->sock, FIONBIO, &on) != 0) return; - #else - if (fcntl(port->sock, F_SETFL, O_NONBLOCK) < 0) - return; - #endif send(port->sock, buffer, strlen(buffer) + 1, 0); } --- 2150,2163 ---- { char buffer[1000]; /* Format the error message packet */ snprintf(buffer, sizeof(buffer), "E%s%s\n", gettext("Server process fork() failed: "), strerror(errnum)); /* Set port to non-blocking. Don't do send() if this fails */ ! if (FCNTL_NONBLOCK(port->sock) < 0) return; send(port->sock, buffer, strlen(buffer) + 1, 0); } Index: src/backend/storage/lmgr/proc.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/storage/lmgr/proc.c,v retrieving revision 1.129 diff -c -c -r1.129 proc.c *** src/backend/storage/lmgr/proc.c 18 Feb 2003 02:13:24 -0000 1.129 --- src/backend/storage/lmgr/proc.c 15 May 2003 16:17:07 -0000 *************** *** 944,949 **** --- 944,952 ---- bool enable_sig_alarm(int delayms, bool is_statement_timeout) { + #ifdef WIN32 + # warning add Win32 timer + #else struct timeval fin_time; #ifndef __BEOS__ struct itimerval timeval; *************** *** 1012,1018 **** if (set_alarm(time_interval, B_ONE_SHOT_RELATIVE_ALARM) < 0) return false; #endif ! return true; } --- 1015,1021 ---- if (set_alarm(time_interval, B_ONE_SHOT_RELATIVE_ALARM) < 0) return false; #endif ! #endif return true; } *************** *** 1026,1031 **** --- 1029,1037 ---- bool disable_sig_alarm(bool is_statement_timeout) { + #ifdef WIN32 + #warning add Win32 timer + #else /* * Always discvs server: src/include/port.h is a new entry, no comparison available able the interrupt if it is active; this avoids being * interrupted by the signal handler and thereby possibly getting *************** *** 1065,1071 **** if (!CheckStatementTimeout()) return false; } ! return true; } --- 1071,1077 ---- if (!CheckStatementTimeout()) return false; } ! #endif return true; } *************** *** 1098,1103 **** --- 1104,1112 ---- else { /* Not time yet, so (re)schedule the interrupt */ + #ifdef WIN32 + #warning add win32 timer + #else #ifndef __BEOS__ struct itimerval timeval; *************** *** 1120,1125 **** --- 1129,1135 ---- (statement_fin_time.tv_usec - now.tv_usec); if (set_alarm(time_interval, B_ONE_SHOT_RELATIVE_ALARM) < 0) return false; + #endif #endif } Index: src/backend/utils/init/findbe.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/utils/init/findbe.c,v retrieving revision 1.32 diff -c -c -r1.32 findbe.c *** src/backend/utils/init/findbe.c 4 Apr 2003 20:42:12 -0000 1.32 --- src/backend/utils/init/findbe.c 15 May 2003 16:17:07 -0000 *************** *** 44,52 **** --- 44,54 ---- ValidateBinary(char *path) { struct stat buf; + #ifndef WIN32 uid_t euid; struct group *gp; struct passwd *pwp; + #endif int i; int is_r = 0; int is_x = 0; *************** *** 82,87 **** --- 84,94 ---- * Ensure that the file is both executable and readable (required for * dynamic loading). */ + #ifdef WIN32 + is_r = buf.st_mode & S_IRUSR; + is_x = buf.st_mode & S_IXUSR; + return is_x ? (is_r ? 0 : -2) : -1; + #else euid = geteuid(); if (euid == buf.st_uid) { *************** *** 125,130 **** --- 132,138 ---- elog(DEBUG2, "ValidateBinary: \"%s\" is not other read/execute", path); return is_x ? (is_r ? 0 : -2) : -1; + #endif } /* Index: src/backend/utils/mb/encnames.c =================================================================== RCS file: /cvsroot/pgsql-server/src/backend/utils/mb/encnames.c,v retrieving revision 1.12 diff -c -c -r1.12 encnames.c *** src/backend/utils/mb/encnames.c 10 Mar 2003 22:28:18 -0000 1.12 --- src/backend/utils/mb/encnames.c 15 May 2003 16:17:07 -0000 *************** *** 13,23 **** #include "utils/builtins.h" #endif - #ifdef WIN32 - #include "win32.h" - #else #include - #endif #include "mb/pg_wchar.h" #include --- 13,19 ---- Index: src/include/c.h =================================================================== RCS file: /cvsroot/pgsql-server/src/include/c.h,v retrieving revision 1.144 diff -c -c -r1.144 c.h *** src/include/c.h 9 May 2003 16:59:43 -0000 1.144 --- src/include/c.h 15 May 2003 16:17:09 -0000 *************** *** 52,58 **** #include "pg_config.h" #include "pg_config_manual.h" /* must be after pg_config.h */ - #include "pg_config_os.h" #include "postgres_ext.h" #include --- 52,57 ---- *************** *** 66,76 **** #include #include ! #include /* ensure O_BINARY is available */ #ifdef HAVE_SUPPORTDEFS_H #include #endif /* Must be before gettext() games below */ #include --- 65,78 ---- #include #include ! #include /* ensure O_BINARY is available */ #ifdef HAVE_SUPPORTDEFS_H #include #endif + /* Must be here so we can redefine some functions on Win32 */ + #include "pg_config_os.h" + /* Must be before gettext() games below */ #include *************** *** 696,759 **** #define PG_BINARY_W "w" #endif ! #if defined(sun) && defined(__sparc__) && !defined(__SVR4) ! #include #endif ! ! /* Portable path handling for Unix/Win32 */ ! bool is_absolute_path(const char *filename); ! char *first_path_separator(const char *filename); ! char *last_path_separator(const char *filename); ! char *get_progname(char *argv0); ! ! #if defined(bsdi) || defined(netbsd) ! int fseeko(FILE *stream, off_t offset, int whence); ! off_t ftello(FILE *stream); #endif - - /* - * Win32 doesn't have reliable rename/unlink during concurrent access - */ - #if defined(WIN32) && !defined(FRONTEND) - int pgrename(const char *from, const char *to); - int pgunlink(const char *path); - #define rename(path) pgrename(path) - #define unlink(from, to) pgunlink(from, to) #endif ! /* ! * Win32 doesn't have opendir/readdir/closedir() ! */ ! #ifdef WIN32 ! struct dirent { ! ino_t d_ino; /* inode (always 1 on WIN32) */ ! char d_name[MAX_PATH + 1]; /* filename (null terminated) */ ! }; ! ! typedef struct { ! HANDLE handle; /* handle for FindFirstFile or ! * FindNextFile */ ! long offset; /* offset into directory */ ! int finished; /* 1 if there are not more files */ ! WIN32_FIND_DATA finddata; /* file data FindFirstFile or FindNextFile ! * returns */ ! char *dir; /* the directory path we are reading */ ! struct dirent ent; /* the dirent to return */ ! } DIR; ! ! extern DIR *opendir(const char *); ! extern struct dirent *readdir(DIR *); ! extern int closedir(DIR *); #endif - /* - * Win32 requires a special close for sockets and pipes, while on Unix - * close() does them all. - */ - #ifndef WIN32 - #define closesocket close - #endif - /* These are for things that are one way on Unix and another on NT */ #define NULL_DEV "/dev/null" --- 698,720 ---- #define PG_BINARY_W "w" #endif ! #if !defined(WIN32) && !defined(__BEOS__) ! #define FCNTL_NONBLOCK(sock) fcntl(sock, F_SETFL, O_NONBLOCK) ! #else ! extern long ioctlsocket_ret; ! /* Returns non-0 on failure, while fcntl() returns -1 on failure */ ! #ifdef WIN32 ! #define FCNTL_NONBLOCK(sock) ((ioctlsocket(sock, FIONBIO, &ioctlsocket_ret) == 0) ? 0 : -1) #endif ! #ifdef __BEOS__ ! #define FCNTL_NONBLOCK(sock) ((ioctl(sock, FIONBIO, &ioctlsocket_ret) == 0) ? 0 : -1) #endif #endif ! #if defined(sun) && defined(__sparc__) && !defined(__SVR4) ! #include #endif /* These are for things that are one way on Unix and another on NT */ #define NULL_DEV "/dev/null" *************** *** 795,831 **** #endif /* - * Default "extern" declarations or macro substitutes for library routines. - * When necessary, these routines are provided by files in src/port/. - */ - #ifndef HAVE_CRYPT - char *crypt(const char *key, const char *setting); - #endif - - #ifndef HAVE_FSEEKO - #define fseeko(a, b, c) fseek((a), (b), (c)) - #define ftello(a) ftell((a)) - #endif - - #ifndef HAVE_ISINF - extern int isinf(double x); - #endif - - #ifndef HAVE_GETHOSTNAME - extern int gethostname(char *name, int namelen); - #endif - - #ifndef HAVE_RINT - extern double rint(double x); - #endif - - #ifndef HAVE_INET_ATON - # include - # include - extern int inet_aton(const char *cp, struct in_addr * addr); - #endif - - /* * When there is no sigsetjmp, its functionality is provided by plain * setjmp. Incidentally, nothing provides setjmp's functionality in * that case. --- 756,761 ---- *************** *** 836,857 **** # define siglongjmp longjmp #endif - #ifndef HAVE_STRCASECMP - extern int strcasecmp(char *s1, char *s2); - #endif - - #ifndef HAVE_STRDUP - extern char *strdup(char const *); - #endif - - #ifndef HAVE_RANDOM - extern long random(void); - #endif - - #ifndef HAVE_SRANDOM - extern void srandom(unsigned int seed); - #endif - #if defined(HAVE_FDATASYNC) && !HAVE_DECL_FDATASYNC extern int fdatasync(int fildes); #endif --- 766,771 ---- *************** *** 867,871 **** --- 781,788 ---- # define strtoull strtouq # define HAVE_STRTOULL 1 #endif + + /* /port compatibility functions */ + #include "port.h" #endif /* C_H */ Index: src/include/pg_config_manual.h =================================================================== RCS file: /cvsroot/pgsql-server/src/include/pg_config_manual.h,v retrieving revision 1.2 diff -c -c -r1.2 pg_config_manual.h *** src/include/pg_config_manual.h 18 Apr 2003 01:03:42 -0000 1.2 --- src/include/pg_config_manual.h 15 May 2cvs server: src/include/port/win.h was removed, no comparison available cvs server: src/include/port/win32_include/dlfcn.h is a new entry, no comparison available cvs server: src/include/port/win32_include/grp.h is a new entry, no comparison available cvs server: src/include/port/win32_include/netdb.h is a new entry, no comparison available cvs server: src/include/port/win32_include/pwd.h is a new entry, no comparison available cvs server: src/include/port/win32_include/netinet/in.h is a new entry, no comparison available cvs server: src/include/port/win32_include/sys/socket.h is a new entry, no comparison available cvs server: src/include/port/win32_include/sys/wait.h is a new entry, no comparison available cvs server: src/makefiles/Makefile.win was removed, no comparison available cvs server: src/makefiles/Makefile.win32 is a new entry, no comparison available cvs server: src/port/opendir.c was removed, no comparison available 003 16:17:09 -0000 *************** *** 130,136 **** * Define this if your operating system supports AF_UNIX family * sockets. */ ! #if !defined(__QNX__) && !defined(__BEOS__) # define HAVE_UNIX_SOCKETS 1 #endif --- 130,136 ---- * Define this if your operating system supports AF_UNIX family * sockets. */ ! #if !defined(__QNX__) && !defined(__BEOS__) && !defined(WIN32) # define HAVE_UNIX_SOCKETS 1 #endif Index: src/include/rusagestub.h =================================================================== RCS file: /cvsroot/pgsql-server/src/include/rusagestub.h,v retrieving revision 1.10 diff -c -c -r1.10 rusagestub.h *** src/include/rusagestub.h 20 Jun 2002 20:29:42 -0000 1.10 --- src/include/rusagestub.h 15 May 2003 16:17:09 -0000 *************** *** 15,21 **** --- 15,23 ---- #define RUSAGESTUB_H #include /* for struct timeval */ + #ifndef WIN32 #include /* for struct tms */ + #endif #include /* for CLK_TCK */ #define RUSAGE_SELF 0 Index: src/include/port/win32.h =================================================================== RCS file: /cvsroot/pgsql-server/src/include/port/win32.h,v retrieving revision 1.9 diff -c -c -r1.9 win32.h *** src/include/port/win32.h 29 Apr 2003 18:25:54 -0000 1.9 --- src/include/port/win32.h 15 May 2003 16:17:09 -0000 *************** *** 1,5 **** --- 1,16 ---- /* $Header: /cvsroot/pgsql-server/src/include/port/win32.h,v 1.9 2003/04/29 18:25:54 momjian Exp $ */ + /* undefine and redefine after #include */ + #undef mkdir + + #undef ERROR + #include + #undef near + + /* Must be here to avoid conflicting with prototype in windows.h */ + #define mkdir(a,b) mkdir(a) + + #define USES_WINSOCK #define NOFILE 100 *************** *** 33,38 **** --- 44,52 ---- /* * IPC defines */ + #undef HAVE_UNION_SEMUN + #define HAVE_UNION_SEMUN 1 + #define IPC_RMID 256 #define IPC_CREAT 512 #define IPC_EXCL 1024 *************** *** 40,45 **** --- 54,67 ---- #define IPC_NOWAIT 2048 #define IPC_STAT 4096 + #define EACCESS 2048 + #define EIDRM 4096 + + #define SETALL 8192 + #define GETNCNT 16384 + #define GETVAL 65536 + #define SETVAL 131072 + #define GETPID 262144 /* * Shared memory *************** *** 77,82 **** --- 99,128 ---- int semget(int semKey, int semNum, int flags); int semop(int semId, struct sembuf * sops, int flag); + #define sleep(sec) (Sleep(sec * 1000), /* no return value */ 0) + + /* Some extra signals */ + #define SIGHUP 1 + #define SIGQUIT 3 + #define SIGTRAP 5 + #define SIGABRT 22 /* Set to match W32 value -- not UNIX value */ + #define SIGKILL 9 + #define SIGPIPE 13 + #define SIGALRM 14 + #define SIGSTOP 17 + #define SIGCONT 19 + #define SIGCHLD 20 + #define SIGTTIN 21 + #define SIGTTOU 22 /* Same as SIGABRT -- no problem, I hope */ + #define SIGWINCH 28 + #define SIGUSR1 30 + #define SIGUSR2 31 + + struct timezone + { + int tz_minuteswest; /* Minutes west of GMT. */ + int tz_dsttime; /* Nonzero if DST is ever in effect. */ + }; /* FROM SRA */ *************** *** 130,134 **** */ #define snprintf _snprintf #define vsnprintf _vsnprintf - - --- 176,178 ---- Index: src/include/utils/elog.h =================================================================== RCS file: /cvsroot/pgsql-server/src/include/utils/elog.h,v retrieving revision 1.41 diff -c -c -r1.41 elog.h *** src/include/utils/elog.h 24 Apr 2003 21:16:44 -0000 1.41 --- src/include/utils/elog.h 15 May 2003 16:17:10 -0000 *************** *** 35,40 **** --- 35,49 ---- #define WARNING 19 /* Warnings */ #define ERROR 20 /* user error - abort transaction; return * to known state */ + #define ERROR 20 /* user error - abort transaction; return + * to known state */ + /* Save ERROR value in PGERROR so it can bve restored when Win32 includes + * modify it. We have to use a constant rather than ERROR because macros + * are expanded only when referenced outside macros. + */ + #ifdef WIN32 + #define PGERROR 20 + #endif #define FATAL 21 /* fatal error - abort process */ #define PANIC 22 /* take down the other backends with me */ Index: src/interfaces/libpq/fe-auth.c =================================================================== RCS file: /cvsroot/pgsql-server/src/interfaces/libpq/fe-auth.c,v retrieving revision 1.76 diff -c -c -r1.76 fe-auth.c *** src/interfaces/libpq/fe-auth.c 19 Apr 2003 00:02:30 -0000 1.76 --- src/interfaces/libpq/fe-auth.c 15 May 2003 16:17:11 -0000 *************** *** 386,395 **** /* * libpq uses a non-blocking socket. But kerberos needs a blocking * socket, and we have to block somehow to do mutual authentication ! * anyway. So we temporarily make it blocking. */ flags = fcntl(sock, F_GETFL); ! if (flags < 0 || fcntl(sock, F_SETFL, (long) (flags & ~O_NONBLOCK))) { snprintf(PQerrormsg, PQERRORMSG_LENGTH, libpq_gettext("could not set socket to blocking mode: %s\n"), strerror(errno)); --- 386,395 ---- /* * libpq uses a non-blocking socket. But kerberos needs a blocking * socket, and we have to block somehow to do mutual authentication ! * anyway. So we temporarily make it blocking. Win32 doesn't support this. */ flags = fcntl(sock, F_GETFL); ! if (flags < 0 || fcntl(sock, F_SETFL, flags & ~O_NONBLOCK))) { snprintf(PQerrormsg, PQERRORMSG_LENGTH, libpq_gettext("could not set socket to blocking mode: %s\n"), strerror(errno)); Index: src/interfaces/libpq/fe-connect.c =================================================================== RCS file: /cvsroot/pgsql-server/src/interfaces/libpq/fe-connect.c,v retrieving revision 1.240 diff -c -c -r1.240 fe-connect.c *** src/interfaces/libpq/fe-connect.c 5 May 2003 00:44:56 -0000 1.240 --- src/interfaces/libpq/fe-connect.c 15 May 2003 16:17:13 -0000 *************** *** 719,735 **** static int connectMakeNonblocking(PGconn *conn) { ! #if defined(WIN32) || defined(__BEOS__) ! int on = 1; ! #endif ! ! #if defined(WIN32) ! if (ioctlsocket(conn->sock, FIONBIO, &on) != 0) ! #elif defined(__BEOS__) ! if (ioctl(conn->sock, FIONBIO, &on) != 0) ! #else ! if (fcntl(conn->sock, F_SETFL, O_NONBLOCK) < 0) ! #endif { printfPQExpBuffer(&conn->errorMessage, libpq_gettext("could not set socket to non-blocking mode: %s\n"), --- 719,725 ---- static int connectMakeNonblocking(PGconn *conn) { ! if (FCNTL_NONBLOCK(conn->sock) < 0) { printfPQExpBuffer(&conn->errorMessage, libpq_gettext("could not set socket to non-blocking mode: %s\n"), Index: src/port/dirmod.c =================================================================== RCS file: /cvsroot/pgsql-server/src/port/dirmod.c,v retrieving revision 1.2 diff -c -c -r1.2 dirmod.c *** src/port/dirmod.c 24 Apr 2003 16:40:17 -0000 1.2 --- src/port/dirmod.c 15 May 2003 16:17:13 -0000 *************** *** 6,11 **** --- 6,13 ---- #ifndef TEST_VERSION + #include "postgres.h" + #undef rename #undef unlink Index: src/port/getopt.c =================================================================== RCS file: /cvsroot/pgsql-server/src/port/getopt.c,v retrieving revision 1.3 diff -c -c -r1.3 getopt.c *** src/port/getopt.c 6 Jan 2003 18:53:25 -0000 1.3 --- src/port/getopt.c 15 May 2003 16:17:13 -0000 *************** *** 30,38 **** * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. */ #if defined(LIBC_SCCS) && !defined(lint) static char sccsid[] = "@(#)getopt.c 8.3 (Berkeley) 4/27/95"; #endif /* LIBC_SCCS and not lint */ --- 30,40 ---- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF */ + #include "postgres.h" + + #if defined(LIBC_SCCS) && !defined(lint) statcvs server: src/template/win32 is a new entry, no comparison available ic char sccsid[] = "@(#)getopt.c 8.3 (Berkeley) 4/27/95"; #endif /* LIBC_SCCS and not lint */ *************** *** 92,98 **** ++optind; if (opterr && *ostr != ':') (void) fprintf(stderr, ! "%s: illegal option -- %c\n", argv[0], optopt); return BADCH; } if (*++oli != ':') --- 94,100 ---- ++optind; if (opterr && *ostr != ':') (void) fprintf(stderr, ! "illegal option -- %c\n", optopt); return BADCH; } if (*++oli != ':') *************** *** 112,119 **** return BADARG; if (opterr) (void) fprintf(stderr, ! "%s: option requires an argument -- %c\n", ! argv[0], optopt); return BADCH; } else --- 114,121 ---- return BADARG; if (opterr) (void) fprintf(stderr, ! "option requires an argument -- %c\n", ! optopt); return BADCH; } else Index: src/port/getrusage.c =================================================================== RCS file: /cvsroot/pgsql-server/src/port/getrusage.c,v retrieving revision 1.1 diff -c -c -r1.1 getrusage.c *** src/port/getrusage.c 18 Jul 2002 04:13:59 -0000 1.1 --- src/port/getrusage.c 15 May 2003 16:17:13 -0000 *************** *** 2,7 **** --- 2,9 ---- #include #include + + #include "postgres.h" #include "rusagestub.h" /* This code works on: *************** *** 19,24 **** --- 21,30 ---- int getrusage(int who, struct rusage * rusage) { + #ifdef WIN32 + if (rusage) + memset(rusage, 0, sizeof(rusage)); + #else struct tms tms; int tick_rate = CLK_TCK; /* ticks per second */ clock_t u, *************** *** 54,58 **** --- 60,65 ---- rusage->ru_utime.tv_usec = TICK_TO_USEC(u, tick_rate); rusage->ru_stime.tv_sec = TICK_TO_SEC(s, tick_rate); rusage->ru_stime.tv_usec = TICK_TO_USEC(u, tick_rate); + #endif return 0; }