Skip site navigation (1) Skip section navigation (2)

Re: [HACKERS] Regression tests on intel for 6.5.2

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Lamar Owen <lamar(dot)owen(at)wgcr(dot)org>
Cc: pgsql-hackers(at)postgreSQL(dot)org
Subject: Re: [HACKERS] Regression tests on intel for 6.5.2
Date: 1999-09-27 23:46:53
Message-ID: 28004.938476013@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-hackers
Lamar Owen <lamar(dot)owen(at)wgcr(dot)org> writes:
> In the course of building and testing the rpm's for 6.5.2, unexpected
> results were found in the regression testing.  I am curious as to what
> the results for 'float8' mean (geometry also failed, but it's obvious as
> to why):

I saw similar results with older Postgres releases on HPUX.  The problem
is failure to detect an invalid result from the exp() library function.
Unfortunately there's not complete uniformity about how to test that
on different platforms.

What's currently in dexp() in backend/utils/adt/float.c is

#ifndef finite
	errno = 0;
#endif
	*result = (float64data) exp(tmp);
#ifndef finite
	if (errno == ERANGE)
#else
	/* infinity implies overflow, zero implies underflow */
	if (!finite(*result) || *result == 0.0)
#endif
		elog(ERROR, "exp() result is out of range");

which is evidently doing the wrong thing on your platform.  What does
your man page for exp() say about error return conventions?

I suspect the assumption that finite() is always implemented as a macro
if it's present at all is the weak spot ... or it might be that your
math lib returns some other error code like EDOM ...

			regards, tom lane

Responses

pgsql-hackers by date

Next:From: Lamar OwenDate: 1999-09-27 23:52:07
Subject: Re: [HACKERS] Regression tests on intel for 6.5.2
Previous:From: Lamar OwenDate: 1999-09-27 23:40:54
Subject: Re: [HACKERS] Re: New init script and upgrade attempt: failed

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group