Re: BUG #6096: ECPG set precision of double value to 14 digits

From: Akira Kurosawa <kurosawa-akira(at)mxc(dot)nes(dot)nec(dot)co(dot)jp>
To: pgsql-bugs(at)postgresql(dot)org
Cc: iwaasa(at)mxs(dot)nes(dot)nec(dot)co(dot)jp
Subject: Re: BUG #6096: ECPG set precision of double value to 14 digits
Date: 2011-07-16 12:21:04
Message-ID: ACCC43B2D53AD9kurosawa-akira@mxc.nes.nec.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

I built PostgreSQL 8.4.8 with the following patch,
then executed same program.

This result is same as psql's one.

--------------------------------------------------
testdb=# SELECT * FROM double_table;
c1
-------------------
12345678901234
1234567890.1234
0.12345678901234
123456789012345
1234567890.12345
0.123456789012345
(6 rows)
--------------------------------------------------

*** execute.c.org 2011-04-15 12:17:14.000000000 +0900
--- execute.c 2011-07-16 19:46:05.000000000 +0900
***************
*** 709,720 ****
strcpy(mallocedval, "array [");

for (element = 0; element < asize; element++)
! sprintf(mallocedval + strlen(mallocedval), "%.14g,", ((double *) var->value)[element]);

strcpy(mallocedval + strlen(mallocedval) - 1, "]");
}
else
! sprintf(mallocedval, "%.14g", *((double *) var->value));

*tobeinserted_p = mallocedval;
break;
--- 709,720 ----
strcpy(mallocedval, "array [");

for (element = 0; element < asize; element++)
! sprintf(mallocedval + strlen(mallocedval), "%.15g,", ((double *) var->value)[element]);

strcpy(mallocedval + strlen(mallocedval) - 1, "]");
}
else
! sprintf(mallocedval, "%.15g", *((double *) var->value));

*tobeinserted_p = mallocedval;
break;

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Olivier LEVESQUE 2011-07-16 19:30:59 Re: BUG #6085: pg_upgrade fails when unix_socket_directory != /tmp
Previous Message Tom Lane 2011-07-15 17:21:38 Re: Spurious errors relating to escaped single quotes