Hi, I've been doing some tests with writing int8 to the database using ecpg. This does not work if the long long variable is in a structure, as it is not recognised as a simple type. The patch is attached, but is not very satisfactory. Moving the definition of ECPGt_long_long, ECPGt_unsigned_long_long up to before ECPGt_varchar causes the resulting application to crash, as it finds an ECPGt_union, where it should haven found an ECPGt_EOIT (I think), and I could not figure out where the static offset comes from. Another problem with ecpg is that it dies on the alpha for long long variables unless #define HAVE_LONG_LONG_INT_64 is set in config.h. It is not set by default. Without fixing these int8 values cannot be written to the database. Regards, Adriaan
diff -Naur postgresql-7.1RC1/src/interfaces/ecpg/include/ecpgtype.h postgresql-7.1RC1.orig/src/interfaces/ecpg/include/ecpgtype.h --- postgresql-7.1RC1/src/interfaces/ecpg/include/ecpgtype.h Wed Mar 28 12:16:44 2001 +++ postgresql-7.1RC1.orig/src/interfaces/ecpg/include/ecpgtype.h Sun Jan 7 +04:03:39 2001 @@ -70,8 +70,7 @@ ECPGd_EODT /* End of descriptor types. */ }; -#define IS_SIMPLE_TYPE(type) ((type) >= ECPGt_char && (type) <= ECPGt_varchar2 | -| (type)>=ECPGt_long_long) +#define IS_SIMPLE_TYPE(type) ((type) >= ECPGt_char && (type) <= ECPGt_varchar2) #ifdef __cplusplus }
---------------------------(end of broadcast)--------------------------- TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]