From: Bruce Momjian Date: Fri, 16 May 2003 04:59:24 +0000 (+0000) Subject: Allow interfaces to compile under MingGW/Win32 by adding _P to symbols X-Git-Tag: REL7_4_BETA1~583 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c42581eba3c08ae7195472d32a39220697f72f58;p=thirdparty%2Fpostgresql.git Allow interfaces to compile under MingGW/Win32 by adding _P to symbols in ecpg. --- diff --git a/src/include/port.h b/src/include/port.h index ef40360ca65..f42067d29ab 100644 --- a/src/include/port.h +++ b/src/include/port.h @@ -6,7 +6,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: port.h,v 1.2 2003/05/16 01:57:51 momjian Exp $ + * $Id: port.h,v 1.3 2003/05/16 04:59:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -34,6 +34,7 @@ int pgunlink(const char *path); #endif extern int copydir(char *fromdir,char *todir); +/* Last parameter not used */ extern int gettimeofday(struct timeval *tp, struct timezone *tzp); #else diff --git a/src/include/port/win32.h b/src/include/port/win32.h index 36bb246e9b5..747a2d757c8 100644 --- a/src/include/port/win32.h +++ b/src/include/port/win32.h @@ -1,4 +1,4 @@ -/* $Header: /cvsroot/pgsql/src/include/port/win32.h,v 1.10 2003/05/15 16:35:29 momjian Exp $ */ +/* $Header: /cvsroot/pgsql/src/include/port/win32.h,v 1.11 2003/05/16 04:59:22 momjian Exp $ */ /* undefine and redefine after #include */ #undef mkdir @@ -164,15 +164,3 @@ struct timezone #define ECONNRESET WSAECONNRESET #define EINPROGRESS WSAEINPROGRESS -/* - * Supplement to . - */ -#define isnan _isnan -#define finite _finite -extern double rint(double x); - -/* - * Supplement to . - */ -#define snprintf _snprintf -#define vsnprintf _vsnprintf diff --git a/src/interfaces/ecpg/preproc/c_keywords.c b/src/interfaces/ecpg/preproc/c_keywords.c index 68f2f112c53..04c55f5b3f2 100644 --- a/src/interfaces/ecpg/preproc/c_keywords.c +++ b/src/interfaces/ecpg/preproc/c_keywords.c @@ -25,11 +25,11 @@ static ScanKeyword ScanKeywords[] = { {"bool", SQL_BOOL}, {"char", CHAR_P}, {"const", S_CONST}, - {"double", DOUBLE}, + {"double", DOUBLE_P}, {"enum", SQL_ENUM}, {"extern", S_EXTERN}, {"float", FLOAT_P}, - {"int", INT}, + {"int", INT_P}, {"long", SQL_LONG}, {"register", S_REGISTER}, {"short", SQL_SHORT}, diff --git a/src/interfaces/ecpg/preproc/keywords.c b/src/interfaces/ecpg/preproc/keywords.c index b294ac22908..e0e80f8fe3b 100644 --- a/src/interfaces/ecpg/preproc/keywords.c +++ b/src/interfaces/ecpg/preproc/keywords.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.56 2003/02/14 13:17:13 meskes Exp $ + * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/keywords.c,v 1.57 2003/05/16 04:59:22 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -29,7 +29,7 @@ static ScanKeyword ScanKeywords[] = { /* name, value */ {"abort", ABORT_P}, - {"absolute", ABSOLUTE}, + {"absolute", ABSOLUTE_P}, {"access", ACCESS}, {"action", ACTION}, {"add", ADD}, @@ -54,7 +54,7 @@ static ScanKeyword ScanKeywords[] = { {"bigint", BIGINT}, {"binary", BINARY}, {"bit", BIT}, - {"boolean", BOOLEAN}, + {"boolean", BOOLEAN_P}, {"both", BOTH}, {"by", BY}, {"cache", CACHE}, @@ -96,7 +96,7 @@ static ScanKeyword ScanKeywords[] = { {"day", DAY_P}, {"deallocate", DEALLOCATE}, {"dec", DEC}, - {"decimal", DECIMAL}, + {"decimal", DECIMAL_P}, {"declare", DECLARE}, {"default", DEFAULT}, {"deferrable", DEFERRABLE}, @@ -109,7 +109,7 @@ static ScanKeyword ScanKeywords[] = { {"distinct", DISTINCT}, {"do", DO}, {"domain", DOMAIN_P}, - {"double", DOUBLE}, + {"double", DOUBLE_P}, {"drop", DROP}, {"each", EACH}, {"else", ELSE}, @@ -153,11 +153,11 @@ static ScanKeyword ScanKeywords[] = { {"initially", INITIALLY}, {"inner", INNER_P}, {"inout", INOUT}, - {"input", INPUT}, + {"input", INPUT_P}, {"insensitive", INSENSITIVE}, {"insert", INSERT}, {"instead", INSTEAD}, - {"int", INT}, + {"int", INT_P}, {"integer", INTEGER}, {"intersect", INTERSECT}, {"interval", INTERVAL}, @@ -237,7 +237,7 @@ static ScanKeyword ScanKeywords[] = { {"recheck", RECHECK}, {"references", REFERENCES}, {"reindex", REINDEX}, - {"relative", RELATIVE}, + {"relative", RELATIVE_P}, {"rename", RENAME}, {"replace", REPLACE}, {"reset", RESET}, @@ -273,7 +273,7 @@ static ScanKeyword ScanKeywords[] = { {"stdin", STDIN}, {"stdout", STDOUT}, {"storage", STORAGE}, - {"strict", STRICT}, + {"strict", STRICT_P}, {"substring", SUBSTRING}, {"sysid", SYSID}, {"table", TABLE}, diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y index 4e9374f3d02..276f8ccd9a0 100644 --- a/src/interfaces/ecpg/preproc/preproc.y +++ b/src/interfaces/ecpg/preproc/preproc.y @@ -1,4 +1,4 @@ -/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.217 2003/05/14 14:37:35 meskes Exp $ */ +/* $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/Attic/preproc.y,v 1.218 2003/05/16 04:59:22 momjian Exp $ */ /* Copyright comment */ %{ @@ -177,12 +177,12 @@ make_name(void) %token TYPECAST /* ordinary key words in alphabetical order */ -%token ABORT_P ABSOLUTE ACCESS ACTION ADD AFTER +%token ABORT_P ABSOLUTE_P ACCESS ACTION ADD AFTER AGGREGATE ALL ALTER ANALYSE ANALYZE AND ANY AS ASC ASSERTION ASSIGNMENT AT AUTHORIZATION BACKWARD BEFORE BEGIN_P BETWEEN BIGINT BINARY BIT - BOOLEAN BOTH BY + BOOLEAN_P BOTH BY CACHE CALLED CASCADE CASE CAST CHAIN CHAR_P CHARACTER CHARACTERISTICS CHECK CHECKPOINT CLASS CLOSE @@ -191,9 +191,9 @@ make_name(void) CREATE CREATEDB CREATEUSER CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR CYCLE - DATABASE DAY_P DEALLOCATE DEC DECIMAL DECLARE DEFAULT + DATABASE DAY_P DEALLOCATE DEC DECIMAL_P DECLARE DEFAULT DEFERRABLE DEFERRED DEFINER DELETE_P DELIMITER DELIMITERS - DESC DISTINCT DO DOMAIN_P DOUBLE DROP + DESC DISTINCT DO DOMAIN_P DOUBLE_P DROP EACH ELSE ENCODING ENCRYPTED END_P ESCAPE EXCEPT EXCLUSIVE EXECUTE EXISTS EXPLAIN EXTERNAL EXTRACT @@ -204,7 +204,7 @@ make_name(void) HANDLER HAVING HOUR_P ILIKE IMMEDIATE IMMUTABLE IMPLICIT_P IN_P INCREMENT INDEX INHERITS - INITIALLY INNER_P INOUT INPUT INSENSITIVE INSERT INSTEAD INT + INITIALLY INNER_P INOUT INPUT_P INSENSITIVE INSERT INSTEAD INT_P INTEGER INTERSECT INTERVAL INTO INVOKER IS ISNULL ISOLATION JOIN @@ -226,12 +226,12 @@ make_name(void) PARTIAL PASSWORD PATH_P PENDANT PLACING POSITION PRECISION PRESERVE PREPARE PRIMARY PRIOR PRIVILEGES PROCEDURAL PROCEDURE - READ REAL RECHECK REFERENCES REINDEX RELATIVE RENAME REPLACE + READ REAL RECHECK REFERENCES REINDEX RELATIVE_P RENAME REPLACE RESET 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 + STABLE START STATEMENT STATISTICS STDIN STDOUT STORAGE STRICT_P SUBSTRING SYSID TABLE TEMP TEMPLATE TEMPORARY THEN TIME TIMESTAMP TO TOAST @@ -1688,8 +1688,8 @@ FetchStmt: FETCH direction fetch_how_many from_in name ecpg_into direction: FORWARD { $$ = make_str("forward"); } | BACKWARD { $$ = make_str("backward"); } - | RELATIVE { $$ = make_str("relative"); } - | ABSOLUTE + | RELATIVE_P { $$ = make_str("relative"); } + | ABSOLUTE_P { mmerror(PARSE_ERROR, ET_WARNING, "Currently unsupported FETCH/ABSOLUTE will be passed to backend, backend will use RELATIVE"); $$ = make_str("absolute"); @@ -1973,11 +1973,11 @@ createfunc_opt_item: AS func_as { $$ = make_str("stable"); } | VOLATILE { $$ = make_str("volatile"); } - | CALLED ON NULL_P INPUT + | CALLED ON NULL_P INPUT_P { $$ = make_str("called on null input"); } - | RETURNS NULL_P ON NULL_P INPUT + | RETURNS NULL_P ON NULL_P INPUT_P { $$ = make_str("returns null on null input"); } - | STRICT + | STRICT_P { $$ = make_str("strict"); } | EXTERNAL SECURITY DEFINER { $$ = make_str("external security definer"); } @@ -3010,7 +3010,7 @@ GenericType: type_name { $$ = $1; } * Provide real DECIMAL() and NUMERIC() implementations now - Jan 1998-12-30 * - thomas 1997-09-18 */ -Numeric: INT +Numeric: INT_P { $$ = make_str("int"); } | INTEGER { $$ = make_str("integer"); } @@ -3022,15 +3022,15 @@ Numeric: INT { $$ = make_str("real"); } | FLOAT_P opt_float { $$ = cat2_str(make_str("float"), $2); } - | DOUBLE PRECISION + | DOUBLE_P PRECISION { $$ = make_str("double precision"); } - | DECIMAL opt_decimal + | DECIMAL_P opt_decimal { $$ = cat2_str(make_str("decimal"), $2); } | DEC opt_decimal { $$ = cat2_str(make_str("dec"), $2); } | NUMERIC opt_numeric { $$ = cat2_str(make_str("numeric"), $2); } - | BOOLEAN + | BOOLEAN_P { $$ = make_str("boolean"); } ; @@ -4607,11 +4607,11 @@ simple_type: unsigned_type { $$=$1; } ; unsigned_type: SQL_UNSIGNED SQL_SHORT { $$ = ECPGt_unsigned_short; } - | SQL_UNSIGNED SQL_SHORT INT { $$ = ECPGt_unsigned_short; } + | SQL_UNSIGNED SQL_SHORT INT_P { $$ = ECPGt_unsigned_short; } | SQL_UNSIGNED { $$ = ECPGt_unsigned_int; } - | SQL_UNSIGNED INT { $$ = ECPGt_unsigned_int; } + | SQL_UNSIGNED INT_P { $$ = ECPGt_unsigned_int; } | SQL_UNSIGNED SQL_LONG { $$ = ECPGt_unsigned_long; } - | SQL_UNSIGNED SQL_LONG INT { $$ = ECPGt_unsigned_long; } + | SQL_UNSIGNED SQL_LONG INT_P { $$ = ECPGt_unsigned_long; } | SQL_UNSIGNED SQL_LONG SQL_LONG { #ifdef HAVE_LONG_LONG_INT_64 @@ -4620,7 +4620,7 @@ unsigned_type: SQL_UNSIGNED SQL_SHORT { $$ = ECPGt_unsigned_short; } $$ = ECPGt_unsigned_long; #endif } - | SQL_UNSIGNED SQL_LONG SQL_LONG INT + | SQL_UNSIGNED SQL_LONG SQL_LONG INT_P { #ifdef HAVE_LONG_LONG_INT_64 $$ = ECPGt_unsigned_long_long; @@ -4632,10 +4632,10 @@ unsigned_type: SQL_UNSIGNED SQL_SHORT { $$ = ECPGt_unsigned_short; } ; signed_type: SQL_SHORT { $$ = ECPGt_short; } - | SQL_SHORT INT { $$ = ECPGt_short; } - | INT { $$ = ECPGt_int; } + | SQL_SHORT INT_P { $$ = ECPGt_short; } + | INT_P { $$ = ECPGt_int; } | SQL_LONG { $$ = ECPGt_long; } - | SQL_LONG INT { $$ = ECPGt_long; } + | SQL_LONG INT_P { $$ = ECPGt_long; } | SQL_LONG SQL_LONG { #ifdef HAVE_LONG_LONG_INT_64 @@ -4644,7 +4644,7 @@ signed_type: SQL_SHORT { $$ = ECPGt_short; } $$ = ECPGt_long; #endif } - | SQL_LONG SQL_LONG INT + | SQL_LONG SQL_LONG INT_P { #ifdef HAVE_LONG_LONG_INT_64 $$ = ECPGt_long_long; @@ -5318,7 +5318,7 @@ function_name: ident { $$ = $1; } ColLabel: ECPGColLabel { $$ = $1; } | ECPGTypeName { $$ = $1; } | CHAR_P { $$ = make_str("char"); } - | INT { $$ = make_str("int"); } + | INT_P { $$ = make_str("int"); } | UNION { $$ = make_str("union"); } ; @@ -5346,8 +5346,8 @@ ECPGColLabel: ECPGColLabelCommon { $$ = $1; } /* "Unreserved" keywords --- available for use as any kind of name. */ unreserved_keyword: - ABORT_P { $$ = make_str("abort"); } - | ABSOLUTE { $$ = make_str("absolute"); } + ABORT_P { $$ = make_str("abort"); } + | ABSOLUTE_P { $$ = make_str("absolute"); } | ACCESS { $$ = make_str("access"); } | ACTION { $$ = make_str("action"); } | ADD { $$ = make_str("add"); } @@ -5355,11 +5355,11 @@ unreserved_keyword: | AGGREGATE { $$ = make_str("aggregate"); } | ALTER { $$ = make_str("alter"); } | ASSERTION { $$ = make_str("assertion"); } - | ASSIGNMENT { $$ = make_str("assignment"); } + | ASSIGNMENT { $$ = make_str("assignment"); } | AT { $$ = make_str("at"); } | BACKWARD { $$ = make_str("backward"); } | BEFORE { $$ = make_str("before"); } - | BEGIN_P { $$ = make_str("begin"); } + | BEGIN_P { $$ = make_str("begin"); } | BY { $$ = make_str("by"); } | CACHE { $$ = make_str("cache"); } | CASCADE { $$ = make_str("cascade"); } @@ -5372,8 +5372,8 @@ unreserved_keyword: | COMMENT { $$ = make_str("comment"); } | COMMIT { $$ = make_str("commit"); } | COMMITTED { $$ = make_str("committed"); } - | CONSTRAINTS { $$ = make_str("constraints"); } - | CONVERSION_P { $$ = make_str("conversion"); } + | CONSTRAINTS { $$ = make_str("constraints"); } + | CONVERSION_P { $$ = make_str("conversion"); } | COPY { $$ = make_str("copy"); } | CREATEDB { $$ = make_str("createdb"); } | CREATEUSER { $$ = make_str("createuser"); } @@ -5381,14 +5381,14 @@ unreserved_keyword: | CYCLE { $$ = make_str("cycle"); } | DATABASE { $$ = make_str("database"); } | DAY_P { $$ = make_str("day"); } - | DEALLOCATE { $$ = make_str("deallocate"); } + | DEALLOCATE { $$ = make_str("deallocate"); } | DECLARE { $$ = make_str("declare"); } | DEFERRED { $$ = make_str("deferred"); } | DELETE_P { $$ = make_str("delete"); } - | DELIMITER { $$ = make_str("delimiter"); } + | DELIMITER { $$ = make_str("delimiter"); } | DELIMITERS { $$ = make_str("delimiters"); } - | DOMAIN_P { $$ = make_str("domain"); } - | DOUBLE { $$ = make_str("double"); } + | DOMAIN_P { $$ = make_str("domain"); } + | DOUBLE_P { $$ = make_str("double"); } | DROP { $$ = make_str("drop"); } | EACH { $$ = make_str("each"); } | ENCODING { $$ = make_str("encoding"); } @@ -5406,7 +5406,7 @@ unreserved_keyword: | HOUR_P { $$ = make_str("hour"); } | IMMEDIATE { $$ = make_str("immediate"); } | IMMUTABLE { $$ = make_str("immutable"); } - | IMPLICIT_P { $$ = make_str("implicit"); } + | IMPLICIT_P { $$ = make_str("implicit"); } | INCREMENT { $$ = make_str("increment"); } | INDEX { $$ = make_str("index"); } | INHERITS { $$ = make_str("inherits"); } @@ -5416,7 +5416,7 @@ unreserved_keyword: | INSTEAD { $$ = make_str("instead"); } | ISOLATION { $$ = make_str("isolation"); } | KEY { $$ = make_str("key"); } - | LANCOMPILER { $$ = make_str("lancompiler"); } + | LANCOMPILER { $$ = make_str("lancompiler"); } | LANGUAGE { $$ = make_str("language"); } | LEVEL { $$ = make_str("level"); } | LISTEN { $$ = make_str("listen"); } @@ -5459,7 +5459,7 @@ unreserved_keyword: | READ { $$ = make_str("read"); } | RECHECK { $$ = make_str("recheck"); } | REINDEX { $$ = make_str("reindex"); } - | RELATIVE { $$ = make_str("relative"); } + | RELATIVE_P { $$ = make_str("relative"); } | RENAME { $$ = make_str("rename"); } | REPLACE { $$ = make_str("replace"); } | RESET { $$ = make_str("reset"); } @@ -5536,12 +5536,12 @@ col_name_keyword: | COALESCE { $$ = make_str("coalesce"); } | CONVERT { $$ = make_str("convert"); } | DEC { $$ = make_str("dec"); } - | DECIMAL { $$ = make_str("decimal"); } + | DECIMAL_P { $$ = make_str("decimal"); } | EXISTS { $$ = make_str("exists"); } | EXTRACT { $$ = make_str("extract"); } | FLOAT_P { $$ = make_str("float"); } /* INT must be excluded from ECPGColLabel because of conflict - | INT { $$ = make_str("int"); } + | INT_P { $$ = make_str("int"); } */ | INTEGER { $$ = make_str("integer"); } | INTERVAL { $$ = make_str("interval"); } @@ -5628,7 +5628,7 @@ reserved_keyword: | DISTINCT { $$ = make_str("distinct"); } | DO { $$ = make_str("do"); } | ELSE { $$ = make_str("else"); } - | END_P { $$ = make_str("end"); } + | END_P { $$ = make_str("end"); } | EXCEPT { $$ = make_str("except"); } | FALSE_P { $$ = make_str("false"); } | FOR { $$ = make_str("for"); } @@ -5784,17 +5784,16 @@ c_anything: IDENT { $$ = $1; } | S_RSHIFT { $$ = make_str(">>"); } | S_STATIC { $$ = make_str("static"); } | S_SUB { $$ = make_str("-="); } - | S_TYPEDEF { $$ = make_str("typedef"); } + | S_TYPEDEF { $$ = make_str("typedef"); } | SQL_BOOL { $$ = make_str("bool"); } | SQL_ENUM { $$ = make_str("enum"); } - | INT { $$ = make_str("int"); } + | INT_P { $$ = make_str("int"); } | SQL_LONG { $$ = make_str("long"); } | SQL_SHORT { $$ = make_str("short"); } | SQL_SIGNED { $$ = make_str("signed"); } | SQL_STRUCT { $$ = make_str("struct"); } | SQL_UNSIGNED { $$ = make_str("unsigned"); } | CHAR_P { $$ = make_str("char"); } - | DOUBLE { $$ = make_str("double"); } | FLOAT_P { $$ = make_str("float"); } | UNION { $$ = make_str("union"); } | VARCHAR { $$ = make_str("varchar"); } diff --git a/src/port/gettimeofday.c b/src/port/gettimeofday.c new file mode 100644 index 00000000000..3e2a6706d49 --- /dev/null +++ b/src/port/gettimeofday.c @@ -0,0 +1,53 @@ +/* + * $Header: /cvsroot/pgsql/src/port/gettimeofday.c,v 1.1 2003/05/16 04:59:24 momjian Exp $ + * + * Copyright (c) 2003 SRA, Inc. + * Copyright (c) 2003 SKC, Inc. + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose, without fee, and without a + * written agreement is hereby granted, provided that the above + * copyright notice and this paragraph and the following two + * paragraphs appear in all copies. + * + * IN NO EVENT SHALL THE AUTHOR BE LIABLE TO ANY PARTY FOR DIRECT, + * INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING + * LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS + * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE AUTHOR SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS + * IS" BASIS, AND THE AUTHOR HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, + * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#include "postgres.h" + +#include "sys/time.h" + +/* FILETIME of Jan 1 1970 00:00:00. */ +static const unsigned __int64 epoch = 116444736000000000L; + +/* + * timezone information is stored outside the kernel so tzp isn't used anymore. + */ +int +gettimeofday(struct timeval *tp, struct timezone *tzp) +{ + FILETIME file_time; + SYSTEMTIME system_time; + ULARGE_INTEGER ularge; + + GetSystemTime(&system_time); + SystemTimeToFileTime(&system_time, &file_time); + ularge.LowPart = file_time.dwLowDateTime; + ularge.HighPart = file_time.dwHighDateTime; + + tp->tv_sec = (long)((ularge.QuadPart - epoch) / 10000000L); + tp->tv_usec = (long)(system_time.wMilliseconds * 1000); + + return 0; +} +