Thread: NetBSD/dtime_t

NetBSD/dtime_t

From
Michael Meskes
Date:
Could anyone please tell me how NetBSD defines dtime_t? We have a
buildfarm failure on canary. I know which change triggered this. I
enabled 

typedef timestamp dtime_t;

Which was mishandled by ecpg in Informix mode before and didn't work at
all if you were using the data type.

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 VfL Borussia! Go SF 49ers! Use Debian GNU/Linux! Use PostgreSQL!


Re: NetBSD/dtime_t

From
Kris Jurka
Date:

On Fri, 15 Feb 2008, Michael Meskes wrote:

> Could anyone please tell me how NetBSD defines dtime_t? We have a
> buildfarm failure on canary.

/usr/include/sys/types.h says:

typedef int32_t         dtime_t;        /* on-disk time_t */

Kris Jurka



Re: NetBSD/dtime_t

From
Michael Meskes
Date:
On Fri, Feb 15, 2008 at 05:07:17PM -0500, Kris Jurka wrote:
>> Could anyone please tell me how NetBSD defines dtime_t? We have a
>> buildfarm failure on canary.
>
> /usr/include/sys/types.h says:
>
> typedef int32_t         dtime_t;        /* on-disk time_t */

Thanks. I wonder why they define this datatype. I didn't find it on any
other architecture.

Anyway, does anyone have a suggestion how to solve this issue? Informix
uses the dtime_t datatype to store a timestamp. pgtypeslib also defines
a timestamp type which is 64 bit and not 32 bit like the NetBSD one.
Informix compatibility now typedefs dtime_t to timestamp so the
functions with Informix syntax work as advertized.

If I do not define this datatype, Informix compatibility will not work,
if I define it, NetBSD is not able to compile to regression tests. Of
course we can work around the regression test problem, but a user using
the Informix compatibility feature on NetBSD will run into the same
problem.

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 VfL Borussia! Go SF 49ers! Use Debian GNU/Linux! Use PostgreSQL!


Re: NetBSD/dtime_t

From
Tom Lane
Date:
Michael Meskes <meskes@postgresql.org> writes:
> Anyway, does anyone have a suggestion how to solve this issue? Informix
> uses the dtime_t datatype to store a timestamp. pgtypeslib also defines
> a timestamp type which is 64 bit and not 32 bit like the NetBSD one.
> Informix compatibility now typedefs dtime_t to timestamp so the
> functions with Informix syntax work as advertized.

Does it have to be a typedef, rather than a #define?
I'm thinking that you could forcibly include sys/types.h
and then it would be safe to #define dtime_t the way you want.
        regards, tom lane


Re: NetBSD/dtime_t

From
Michael Meskes
Date:
On Sat, Feb 16, 2008 at 09:15:24AM -0500, Tom Lane wrote:
> Does it have to be a typedef, rather than a #define?
> I'm thinking that you could forcibly include sys/types.h
> and then it would be safe to #define dtime_t the way you want.

I just committed a patch that does more or less what you suggest.
Instead of #define'ing dtimt_t I let ecpg handle this. this actually is
code that was part of ecpg before I just put it back in and changed the
other header files some. Let's see if this helps.

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 VfL Borussia! Go SF 49ers! Use Debian GNU/Linux! Use PostgreSQL!