ecpg long int problem on alpha + fix - Mailing list pgsql-hackers
From | Adriaan Joubert |
---|---|
Subject | ecpg long int problem on alpha + fix |
Date | |
Msg-id | 3AC9ED09.CC11D3BC@albourne.com Whole thread Raw |
Responses |
Re: ecpg long int problem on alpha + fix
|
List | pgsql-hackers |
Hi, we had a problem on Alpha that in interfaces/ecpg/lib/typename.c we have HAVE_LONG_INT_64 defined, but not HAVE_LONG_LONG_INT_64. Consequently no code is included for long ints and typename calls *abort*. I put in a few lines that check for HAVE_LONG_INT_64 and seem to generate the right code. I've got a new version of typename.c attached. It would be good if Michael could review and get this into 7.1. Cheers, Adriaan#include "config.h" #include <stdlib.h> #include "ecpgtype.h" #include "ecpglib.h" #include "extern.h" #include "sql3types.h" #include "pg_type.h" /* * This function is used to generate the correct type names. */ const char * ECPGtype_name(enum ECPGttype typ) { switch (typ) { case ECPGt_char: return "char"; case ECPGt_unsigned_char: return "unsigned char"; case ECPGt_short: return "short"; case ECPGt_unsigned_short: return "unsigned short"; case ECPGt_int: return "int"; case ECPGt_unsigned_int: return "unsigned int"; case ECPGt_long: return "long"; case ECPGt_unsigned_long: return "unsigned long"; #if defined(HAVE_LONG_LONG_INT_64) case ECPGt_long_long: return "long long"; case ECPGt_unsigned_long_long: return "unsigned long long"; #elif defined(HAVE_LONG_INT_64) case ECPGt_long_long: return "long int"; case ECPGt_unsigned_long_long: return "unsigned long int"; #endif /* HAVE_LONG_LONG_INT_64 */ case ECPGt_float: return "float"; case ECPGt_double: return "double"; case ECPGt_bool: return "bool"; case ECPGt_varchar: return "varchar"; case ECPGt_char_variable: return "char"; default: abort(); } return NULL; } unsigned int ECPGDynamicType(Oid type) { switch (type) { case BOOLOID:return SQL3_BOOLEAN; /* bool */ case INT2OID: return SQL3_SMALLINT; /* int2 */ case INT4OID: return SQL3_INTEGER;/* int4 */ case TEXTOID: return SQL3_CHARACTER; /* text */ case FLOAT4OID: return SQL3_REAL; /* float4 */ case FLOAT8OID: return SQL3_DOUBLE_PRECISION; /* float8 */ case BPCHAROID: return SQL3_CHARACTER; /* bpchar */ case VARCHAROID: return SQL3_CHARACTER_VARYING; /* varchar */ case DATEOID: return SQL3_DATE_TIME_TIMESTAMP; /* date */ case TIMEOID: return SQL3_DATE_TIME_TIMESTAMP; /* time */ case TIMESTAMPOID: return SQL3_DATE_TIME_TIMESTAMP; /* datetime */ case NUMERICOID: return SQL3_NUMERIC;/* numeric */ default: return -type; } }
pgsql-hackers by date: