Re: [GENERAL] Psql 7.2.1 Regress tests failed on RedHat 7.3 - Mailing list pgsql-hackers

From Lamar Owen
Subject Re: [GENERAL] Psql 7.2.1 Regress tests failed on RedHat 7.3
Date
Msg-id 200205211206.28577.lamar.owen@wgcr.org
Whole thread Raw
In response to Re: [GENERAL] Psql 7.2.1 Regress tests failed on RedHat 7.3  (Lamar Owen <lamar.owen@wgcr.org>)
List pgsql-hackers
On Tuesday 21 May 2002 09:23 am, Thomas Lockhart wrote:
> > While I don't agree with the standard, trying to be standard isn't really
> > a 'problem'.  Relying on a side-effect of a nonstandard call is the
> > problem.

> In my mind no one associated with glibc gets high marks for anything
> having to do with this change. It is unbelievably short sighted.

Oh, I most certainly agree with you on this Thomas.  The glibc people are just 
being adamant about it being 'standard.'  And I certainly didn't mean to step 
on your toes, either -- as I can tell this is a sore point for you.  I'm just 
trying to see what, if anything, we can do about it.

> > Can we pull in the BSD C library's mktime()?  OR otherwise utilize it to
> > fit this bill?

> Maybe, but probably forcing a *really* annoying code fork or patch to
> get the entry points to play nice with glibc. We'll also need to figure
> out how to manage the time zone database and how to keep it in sync.

> This is a seriously big problem, and we'll need to research what to do
> next. One possibility is to strip out all string time zone behavior and
> support only the SQL date/time standard, which specifies only numeric
> offsets and ignores real-world time zone usage and behaviors. Hmm, IBM
> contributed to that standard too, maybe the common thread is not a
> coincidence.

Well, the existing behavior, according to my first read of the code, is to 
assume UTC if the time_t is predicted to be out of range.  There is a macro 
for this, I see.  And the problem is that the out-of-range condition is 
happening at a different place.  I don't like this thought, but the most 
consistent, least-common-denominator tack would to be flag anything prior to 
epoch as out-of-range, even if the underlying calls can handle negative 
time_t.  I don't like that one whit.  But I like inconsistent data even less.

> The new glibc behavior is really disappointing. Help and ideas are
> appreciated; reimplementing an entire date/time system may be a lot of
> work.

Well, it was good foresight on your part to put all the mktime stuff in the 
one place.  I'm going to go through it and see if I understand what I'm 
looking at first.

But I see a couple of possibilities that we can control:
1.)    Have configure test for broken mktime and sub our own mktime in that case 
(if this is even possible -- while the various BSD's have mktime and friends, 
how difficult is it going to be to unshackle that from a BSD kernel 
underneath -- I've not looked at the code for OpenBSD's mktime (which I have 
on hand), but I guess I will take a look now);
2.)    Rewrite our stuff to not depend on any mktime, and thus be more portable 
(perhaps?).

But, in any case, I didn't mean to step on your toes by any of my comments; I 
completely agree with you that glibc and the ISO C standard cited are daft in 
this.
-- 
Lamar Owen
WGCR Internet Radio
1 Peter 4:11


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Per tuple overhead, cmin, cmax, OID
Next
From: "Dave Page"
Date:
Subject: Re: More schema queries