array_to_string return is different between Windows and Linux systems

Started by Pascal Lequeuxabout 19 years ago2 messagesgeneral
Jump to latest
#1Pascal Lequeux
plequeux@zti.fr

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
----------------------------------------

#2Magnus Hagander
magnus@hagander.net
In reply to: Pascal Lequeux (#1)
Re: array_to_string return is different between Windows and Linux systems

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