Обсуждение: ecpg: dtime_t vs timestamp
We have upgraded from Version 7.4.x to Version 8.2.4. In 7.4.x, we use the Informix compatibility functionality to use legacy code. Our .pgc code looks as follows: #include "Ice.h" EXEC SQL include sqlda; EXEC SQL include sqltypes; EXEC SQL include sql3types; EXEC SQL include pgtypes_timestamp; EXEC SQL include pgtypes_date; EXEC SQL include pgtypes_interval; EXEC SQL include pgtypes_numeric; EXEC SQL BEGIN DECLARE SECTION; struct Ice_t { char lid[9]; char pe[3]; short dur; char ts[3]; char extremum[2]; dtime_t obstime; double value; char shef_qual_code[2]; long quality_code; short revision; char product_id[11]; dtime_t producttime; dtime_t postingtime; } The Ice.h header file includes the postgres datetime.h header file. The datetime.h file has the line "typedef timestamp dtime_t". Using Version 7.4.x, this worked. Now when we use Version 8.2.4 (which has an updated ecpg), this results in the message ERROR: invalid datatype 'dtime_t' How should we fix this? Paul Tilles
On Tue, Aug 28, 2007 at 10:59:42AM -0400, Paul Tilles wrote: > We have upgraded from Version 7.4.x to Version 8.2.4. > In 7.4.x, we use the Informix compatibility functionality to use legacy > code. > Our .pgc code looks as follows: > ... This is indeed a bug. Thanks for reporting it. What happens is that ecpg defines the data types, but does not use that define while in C code. I just committed patches to CVS. I also attach it here. Could you please try if this fixes your problem? Thanks. Michael -- Michael Meskes Email: Michael at Fam-Meskes dot De, Michael at Meskes dot (De|Com|Net|Org) ICQ: 179140304, AIM/Yahoo: michaelmeskes, Jabber: meskes@jabber.org Go SF 49ers! Go Rhein Fire! Use Debian GNU/Linux! Use PostgreSQL!