TODO has:
o Add SET REAL_FORMAT and SET DOUBLE_PRECISION_FORMAT
using printf args
so we have not implemented it yet.
---------------------------------------------------------------------------
Pedro Miguel Frazao Fernandes Ferreira wrote:
> Hi All,
>
> I wrote a Matlab interface to PostgreSQL based on libpq. It is working
> fine, supports multiple connections, supports all data types and arrays.
> It is a C program to do the interface and some Matlab wrapper functions
> around it to do the job at application level.
>
> Matlab has an ODBC toolbox but we dont want to buy it since the
> interface does the job and we have been using PostgreSQL for long time.
> We want to use PostgreSQl to store numeric data from simulation,
> computation and data acquisition sources. Basically a big bunch of float
> numbers.
>
> There is still one problem, regarding float output formatting in querys
> and dumps, which essential for this type of application.
>
> If I have a float8 field (named real8 below) in a table and insert the
> following,
>
> insert into test(real8) values (4503599627370496);
> INSERT 21192 1
>
> A select produces,
>
> select real8 from test;
> real8
> ---------------------
> 4.5035996273705e+15
> (1 row)
>
> This is the string I would get from libpq's PQgetvalue(). PQftype()
> correctly returns float8. pg_dump produces the same result. If I convert
> PQgetvalue() to a C double I wont get the same number I inserted. If I
> do a restore from a dump I also wont have the same number. I can see
> that the original number is correctly stored because,
>
> select to_char(real8,'9999999999999999999.99999') from test;
> to_char
> ----------------------
> 4503599627370496
> (1 row)
>
> This way PQftype wont tell this is a float8.
>
> Is there a way to set query output precision to maximum precision ?
> For the type of application I mentioned this is crucial. People want to
> get the 'same' numbers, from querys or dumps, as they inserted them.
>
> Matlab has a toolbox fucntion, claiming maximum precision, to convert
> from its double type (PostgreSQL float8) to string which does a
> sprintf('%25.18g',number).
>
> Would it be possible to have a a parameter which could be changed by a
> SET command, in order to control output precision ? I searched the docs
> but could not find this.
>
> --
> ----------------------------------------------------------------------
> Pedro Miguel Frazao Fernandes Ferreira
> Universidade do Algarve
> Faculdade de Ciencias e Tecnologia
> Campus de Gambelas
> 8000-117 Faro
> Portugal
> Tel./Fax: (+351) 289 800950 / 289 819403
> http://w3.ualg.pt/~pfrazao
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>
--
Bruce Momjian | http://candle.pha.pa.us
[EMAIL PROTECTED] | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to [EMAIL PROTECTED] so that your
message can get through to the mailing list cleanly