Thomas Lockhart writes:
> I'd like to collect info on the platforms we are supporting for v7.0.
I am now reproduceably getting this failure in the timestamp test. I have
never seen it before today:
*** expected/timestamp.out Sun Apr 2 14:15:29 2000
--- results/timestamp.out Sun Apr 2 18:01:21 2000
***************
*** 13,25 **** SELECT (timestamp 'today' = (timestamp 'tomorrow' - interval '1 day')) as "True"; True ------
! t (1 row) SELECT (timestamp 'tomorrow' = (timestamp 'yesterday' + interval '2 days')) as "True"; True ------
! t (1 row) SELECT (timestamp 'current' = 'now') as "True";
--- 13,25 ---- SELECT (timestamp 'today' = (timestamp 'tomorrow' - interval '1 day')) as "True"; True ------
! f (1 row) SELECT (timestamp 'tomorrow' = (timestamp 'yesterday' + interval '2 days')) as "True"; True ------
! f (1 row) SELECT (timestamp 'current' = 'now') as "True";
***************
*** 81,87 **** SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' + interval '1 day'; one -----
! 1 (1 row) SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' - interval '1 day';
--- 81,87 ---- SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' + interval '1 day'; one -----
! 0 (1 row) SELECT count(*) AS one FROM TIMESTAMP_TBL WHERE d1 = timestamp 'today' - interval '1 day';
----------------------
The catch is that this *always* happens in the (parallel) regression tests
but not if I run the file through psql by hand. Gives me a warm feeling
... :(
Furthermore, PostgreSQL doesn't compile with gcc 2.8.1 (never has). I get
a fatal signal if backend/utils/adt/float.c is compiled with -O2 or
higher. The offending line is in function
float64 dpow(float64 arg1, float64 arg2)
*result = (float64data) pow(tmp1, tmp2);
Certainly a compiler bug, does anyone have a suggestion how this should be
handled? Is gcc 2.8.1 in wide-spread use?
--
Peter Eisentraut Sernanders väg 10:115
peter_e@gmx.net 75262 Uppsala
http://yi.org/peter-e/ Sweden