ecpg bug and patch - Mailing list pgsql-hackers

From Adriaan Joubert
Subject ecpg bug and patch
Date
Msg-id 3AC1AC3F.41146045@albourne.com
Whole thread Raw
List pgsql-hackers
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,

Adriaandiff -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
 }

pgsql-hackers by date:

Previous
From: Hiroshi Inoue
Date:
Subject: Re: Re: [SQL] possible row locking bug in 7.0.3 & 7.1
Next
From: Adriaan Joubert
Date:
Subject: Re: ecpg bug and patch