Thread: array_to_string return is different between Windows and Linux systems

array_to_string return is different between Windows and Linux systems

From
Pascal Lequeux
Date:
Hi all,

The array_to_string function used to compare the content of arrays of doubles doesn't return the same result if the OS is Windows or if it is a Linux system.

Here is an example using the same table content:
Result 1: "0,0.000263,8e-06,8e-06,0.000146,0.000321" [PostgreSQL 8.0.4 (redhat) or 8.1.5 (OpenSuse 10.2)]
Result 2: "0,0.000263,8e-006,8e-006,0.000146,0.000321" [PostgreSQL 8.1.4, 8.1.5 or 8.1.6 (Windows)]
The string compare fails!

Is there a way to fix the exponent size ?
--

Best regards,
Pascal Lequeux

plequeux@zti.fr
----------------------------------------
ZTI
1 Bd d'Armor
BP 20254
22302 LANNION Cedex
FRANCE
----------------------------------------
Tel.: +33 2 96 48 43 43
Fax.: +33 2 96 48 14 85
Web: http://www.zti.fr ou http://www.zti-telecom.com
----------------------------------------

Re: array_to_string return is different between Windows and Linux systems

From
Magnus Hagander
Date:
On Tue, Jan 23, 2007 at 09:23:06AM +0100, Pascal Lequeux wrote:
> Hi all,
>
> The *array_to_string *function used to compare the content of arrays of
> doubles doesn't return the same result if the OS is Windows or if it is
> a Linux system.
>
> Here is an example using the same table content:
> Result 1: "0,0.000263,*8e-06*,*8e-06*,0.000146,0.000321" [PostgreSQL
> 8.0.4 (redhat) or 8.1.5 (OpenSuse 10.2)]
> Result 2: "0,0.000263,*8e-006*,*8e-006*,0.000146,0.000321" [PostgreSQL
> 8.1.4, 8.1.5 or 8.1.6 (Windows)]
> The string compare fails!
>
> Is there a way to fix the exponent size ?

AFAIK, no. This is based on the operating system C library. It differs
between some other platforms as well IIRC - there are exceptions in the
regression tests for this.

//Magnus