Re: AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-22 Thread Pete Forman
Peter Eisentraut writes: What if someone has a binary PostgreSQL package installed, then updates his time library to something supposedly binary compatible and finds out that PostgreSQL still doesn't use the enhanced capabilities? You are too generous. If someone downloads a binary

AW: AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-22 Thread Zeugswetter Andreas SB
The other category is run-time behaviour, which is the present case of testing whether mktime() behaves a certain way when given certain arguments. Another item that has been thrown around over the years is whether the system supports Unix domain sockets (essentially a run-time behaviour

Re: AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-20 Thread Ian Lance Taylor
Peter Eisentraut [EMAIL PROTECTED] writes: This would seem to be the right answer, but unfortunately Autoconf is not smart enough to detect marginal cross-compilation cases in all situations. Someone had zlib installed in a location where gcc would find it (compiles okay) but the

AW: AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-19 Thread Zeugswetter Andreas SB
I agree that configure is the way to go. What if someone has installed a third party library to provide a better mktime() and localtime()? Exactly. What if someone has a binary PostgreSQL package installed, then updates his time library to something supposedly binary compatible and

Re: AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-19 Thread Thomas Lockhart
Exactly. What if someone has a binary PostgreSQL package installed, then updates his time library to something supposedly binary compatible and finds out that PostgreSQL still doesn't use the enhanced capabilities? Runtime behaviour checks are done at runtime, it's as simple as that. I'm

Re: AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-18 Thread Pete Forman
Zeugswetter Andreas SB writes: The down side is, that I did not do a configure test, and did not incooperate IRIX, since I didn't know what define to check. The correct thing to do instead of the #if defined (_AIX) would be to use something like #ifdef NO_NEGATIVE_MKTIME and set that

AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-17 Thread Zeugswetter Andreas SB
Yes, the annoyance is, that localtime works for dates before 1970 but mktime doesn't. Best would probably be to assume no DST before 1970 on AIX and IRIX. That seems like a reasonable answer to me, especially since we have other platforms that behave that way. How can we do this

AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-17 Thread Zeugswetter Andreas SB
Yes, the annoyance is, that localtime works for dates before 1970 but mktime doesn't. Best would probably be to assume no DST before 1970 on AIX and IRIX. That seems like a reasonable answer to me, especially since we have other platforms that behave that way. How can we

Re: AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-17 Thread Thomas Lockhart
The correct thing to do instead of the #if defined (_AIX) would be to use something like #ifdef NO_NEGATIVE_MKTIME and set that with a configure. Thomas, are you volunteering ? Actually, I can volunteer to be supportive of your efforts ;) I'm traveling at the moment, and don't have the

AW: AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-17 Thread Zeugswetter Andreas SB
The correct thing to do instead of the #if defined (_AIX) would be to use something like #ifdef NO_NEGATIVE_MKTIME and set that with a configure. Thomas, are you volunteering ? Actually, I can volunteer to be supportive of your efforts ;) I'm traveling at the moment, and don't have the

Re: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-12 Thread Thomas Lockhart
Here is the program. The call to localtime(t_ago) is redundant and hence the adjustment of t_ago can be skipped. It is in this program as a sanity check. As it stands, this program assumes that the input and resulting date are in the usual UNIX range of [1901, 2038]. I presume that there

Re: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-12 Thread Tom Lane
Pete Forman [EMAIL PROTECTED] writes: Thinking about that a bit more, I think that tm_isdst should not be written into. IIRC, setting isdst to -1 was necessary to get the right behavior across DST boundaries on more-mainstream systems. I do not think it's acceptable to do worse on systems

AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-12 Thread Zeugswetter Andreas SB
Pete Forman [EMAIL PROTECTED] writes: Thinking about that a bit more, I think that tm_isdst should not be written into. IIRC, setting isdst to -1 was necessary to get the right behavior across DST boundaries on more-mainstream systems. I do not think it's acceptable to do worse on

Re: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-12 Thread Tom Lane
Zeugswetter Andreas SB [EMAIL PROTECTED] writes: Yes, the annoyance is, that localtime works for dates before 1970 but mktime doesn't. Best would probably be to assume no DST before 1970 on AIX and IRIX. That seems like a reasonable answer to me, especially since we have other platforms that

AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-12 Thread Zeugswetter Andreas SB
Yes, the annoyance is, that localtime works for dates before 1970 but mktime doesn't. Best would probably be to assume no DST before 1970 on AIX and IRIX. That seems like a reasonable answer to me, especially since we have other platforms that behave that way. How can we do this ---

Re: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-12 Thread Pete Forman
Tom Lane writes: Pete Forman [EMAIL PROTECTED] writes: Thinking about that a bit more, I think that tm_isdst should not be written into. IIRC, setting isdst to -1 was necessary to get the right behavior across DST boundaries on more-mainstream systems. I do not think it's

Re: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-12 Thread Tom Lane
Pete Forman [EMAIL PROTECTED] writes: It is fairly arbitrary what the answer to this question is: if six months is subtracted from a to give b, should a.local.hour = b.local.hour or should a.utc.hour = b.utc.hour? If you want the former then set tm_isdst = -1 before calling mktime. It's not

AW: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-11 Thread Zeugswetter Andreas SB
On AIX mktime(3) leaves tm_isdst at -1 if it does not have timezone info for that particular year and returns -1. The following code then makes savings time out of the -1. tz = (tm-tm_isdst ? (timezone - 3600) : timezone); Hmm. That description is consistant with what I see

Re: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-11 Thread Pete Forman
Zeugswetter Andreas SB writes: Try the attachment with negative values, and tell us whether mktime returns anything other that -1. Do you have an idea how else we could determine daylight savings time ? mktime always returns -1 for tm's that might expect to return a negative number. In

Re: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-11 Thread Pete Forman
Pete Forman writes: One workaround would be to add 4*n to tm_year and subtract (365*4+1) *24*60*60*n from the time_t returned. (All leap years are multiples of 4 in the range 1901 to 2038. If tm_wday is wanted, that will need to be adjusted as well.) FWIW, that should be to add 28*n to

Re: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-11 Thread Thomas Lockhart
I have machines running AIX 4.1.5, 4.2.1, and 4.3.3 if you would like to send me your test programs. I haven't yet actually fixed the code, but will post patches when I've done so (assuming that a fix is possible). - Thomas

AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-10 Thread Zeugswetter Andreas SB
The time zone is now evaluated in the time zone of the result, rather than the input, using system support routines from libc. Ok, I have the answer. On AIX mktime(3) leaves tm_isdst at -1 if it does not have timezone info for that particular year and returns -1. From man page: The

Re: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-10 Thread Thomas Lockhart
On AIX mktime(3) leaves tm_isdst at -1 if it does not have timezone info for that particular year and returns -1. The following code then makes savings time out of the -1. tz = (tm-tm_isdst ? (timezone - 3600) : timezone); Hmm. That description is consistant with what I see in the Linux

Re: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-10 Thread Pete Forman
Thomas Lockhart writes: On AIX mktime(3) leaves tm_isdst at -1 if it does not have timezone info for that particular year and returns -1. The following code then makes savings time out of the -1. tz = (tm-tm_isdst ? (timezone - 3600) : timezone); Hmm. That description is

Re: AW: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-10 Thread Thomas Lockhart
On AIX mktime(3) leaves tm_isdst at -1 if it does not have timezone info for that particular year and returns -1. The following code then makes savings time out of the -1. tz = (tm-tm_isdst ? (timezone - 3600) : timezone); Hmm. That description is consistant with what I see in the

AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-09 Thread Zeugswetter Andreas SB
On AIX timestamp and horology regression fails in current, because timestamp - interval for result timestamps that are before 1970 (epoch ?) are off by one hour. I think this is not an issue for an adapted expected file, but a new (in 7.1beta) bug. But I am at no means an expert at

Re: AW: [HACKERS] Re: tinterval - operator problems on AIX

2001-01-09 Thread Thomas Lockhart
What I do not understand is, that I thought a time in december cannot be affected by such math because it is clearly not in the daylight savings months of the year ? Also I thought that you recognize daylight savings time by the PDT instead of PST, and PostgreSQL shows a result with PST as I