Allow interfaces to compile under MingGW/Win32 by adding _P to symbols
in ecpg.
This commit is contained in:
parent
32be7207aa
commit
c42581eba3
@ -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
|
||||
|
@ -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 <math.h>.
|
||||
*/
|
||||
#define isnan _isnan
|
||||
#define finite _finite
|
||||
extern double rint(double x);
|
||||
|
||||
/*
|
||||
* Supplement to <stdio.h>.
|
||||
*/
|
||||
#define snprintf _snprintf
|
||||
#define vsnprintf _vsnprintf
|
||||
|
@ -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},
|
||||
|
@ -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},
|
||||
|
@ -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 <keyword> ABORT_P ABSOLUTE ACCESS ACTION ADD AFTER
|
||||
%token <keyword> 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"); }
|
||||
|
53
src/port/gettimeofday.c
Normal file
53
src/port/gettimeofday.c
Normal file
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user