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]

Reply via email to