diff options
| author | Michael Meskes <meskes@postgresql.org> | 2010-05-20 22:10:46 +0000 |
|---|---|---|
| committer | Michael Meskes <meskes@postgresql.org> | 2010-05-20 22:10:46 +0000 |
| commit | 15ab0e9a6051ff5b6c88a729ddd9d57ac44f7a11 (patch) | |
| tree | fef663d3ac0c32bc07b4702b2924b4e76dd2f943 /src/interfaces/ecpg/preproc | |
| parent | de98ef62c7fe7a2bf02fafab6a95ae2e138ed075 (diff) | |
Ecpg now accepts "long long" datatypes even if "long" is 64bit wide. This used to cover the equally long "long long" type. This patch closes bug #5464.
Diffstat (limited to 'src/interfaces/ecpg/preproc')
| -rw-r--r-- | src/interfaces/ecpg/preproc/ecpg.header | 7 | ||||
| -rw-r--r-- | src/interfaces/ecpg/preproc/ecpg.trailer | 10 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/interfaces/ecpg/preproc/ecpg.header b/src/interfaces/ecpg/preproc/ecpg.header index 6b05776ee58..848a3a23dc9 100644 --- a/src/interfaces/ecpg/preproc/ecpg.header +++ b/src/interfaces/ecpg/preproc/ecpg.header @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.header,v 1.14 2010/03/09 11:09:45 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.header,v 1.15 2010/05/20 22:10:46 meskes Exp $ */ /* Copyright comment */ %{ @@ -7,6 +7,11 @@ #include "extern.h" #include <unistd.h> +/* Do we know the C99 datatype "long long"? */ +#if defined(LLONG_MIN) || defined(LONGLONG_MIN) || defined(HAVE_LONG_LONG_INT_64) +#define HAVE_LONG_LONG 1 +#endif + /* Location tracking support --- simpler than bison's default */ #define YYLLOC_DEFAULT(Current, Rhs, N) \ do { \ diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer index d5e16afab60..1d854d4bbc0 100644 --- a/src/interfaces/ecpg/preproc/ecpg.trailer +++ b/src/interfaces/ecpg/preproc/ecpg.trailer @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.trailer,v 1.24 2010/03/31 08:45:18 meskes Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.trailer,v 1.25 2010/05/20 22:10:46 meskes Exp $ */ statements: /*EMPTY*/ | statements statement @@ -781,7 +781,7 @@ unsigned_type: SQL_UNSIGNED SQL_SHORT { $$ = ECPGt_unsigned_short; } | SQL_UNSIGNED SQL_LONG INT_P { $$ = ECPGt_unsigned_long; } | SQL_UNSIGNED SQL_LONG SQL_LONG { -#ifdef HAVE_LONG_LONG_INT_64 +#ifdef HAVE_LONG_LONG $$ = ECPGt_unsigned_long_long; #else $$ = ECPGt_unsigned_long; @@ -789,7 +789,7 @@ unsigned_type: SQL_UNSIGNED SQL_SHORT { $$ = ECPGt_unsigned_short; } } | SQL_UNSIGNED SQL_LONG SQL_LONG INT_P { -#ifdef HAVE_LONG_LONG_INT_64 +#ifdef HAVE_LONG_LONG $$ = ECPGt_unsigned_long_long; #else $$ = ECPGt_unsigned_long; @@ -805,7 +805,7 @@ signed_type: SQL_SHORT { $$ = ECPGt_short; } | SQL_LONG INT_P { $$ = ECPGt_long; } | SQL_LONG SQL_LONG { -#ifdef HAVE_LONG_LONG_INT_64 +#ifdef HAVE_LONG_LONG $$ = ECPGt_long_long; #else $$ = ECPGt_long; @@ -813,7 +813,7 @@ signed_type: SQL_SHORT { $$ = ECPGt_short; } } | SQL_LONG SQL_LONG INT_P { -#ifdef HAVE_LONG_LONG_INT_64 +#ifdef HAVE_LONG_LONG $$ = ECPGt_long_long; #else $$ = ECPGt_long; |
