Re: PG8.3->10 migration data differences - Mailing list pgsql-general

From Adrian Klaver
Subject Re: PG8.3->10 migration data differences
Date
Msg-id 07333286-2480-8750-c73d-d82e061b2bca@aklaver.com
Whole thread Raw
In response to Re: PG8.3->10 migration data differences  (Csaba Ragasits <ragasits.csaba@gmail.com>)
Responses Re: PG8.3->10 migration data differences  (Csaba Ragasits <ragasits.csaba@gmail.com>)
List pgsql-general
On 9/10/18 6:43 AM, Csaba Ragasits wrote:
> I think I found the solution.
> 
> When I set this parameter on the pg10 client connection, the pg10 REAL 
> value format same as the pg83 value:
> 
> SET extra_float_digits = 0;
> 
> Interesting, because the default value is 0 in the postgresql.conf:
> #extra_float_digits = 0                 # min -15, max 3
> 
> Do you have any ideas how can I format the miliseconds too?

select version();
    version
------------------------------------------------------------------------------------
  PostgreSQL 10.5 on x86_64-pc-linux-gnu, compiled by gcc (SUSE Linux) 
4.8.5, 64-bit

test=# select '09/10/18 07:10:25.100'::timestamp;
        timestamp
-----------------------
  2018-09-10 07:10:25.1
(1 row)

test=# select '09/10/18 07:10:25.111'::timestamp;
         timestamp
-------------------------
  2018-09-10 07:10:25.111

Milliseconds will display if they are significant.


If you want to format the output:

test=# select to_char('09/10/18 07:10:25.100'::timestamp, 'MM/DD/YY 
HH:MI:SS.MS');
         to_char
-----------------------
  09/10/18 07:10:25.100
(1 row)


> 
> Thx,
> Csaba
> 
> 2018-09-10 12:00 GMT+02:00 Peter J. Holzer <hjp-pgsql@hjp.at 
> <mailto:hjp-pgsql@hjp.at>>:
> 
>     On 2018-09-10 11:57:42 +0300, Achilleas Mantzios wrote:
>     > On 10/09/2018 11:22, Csaba Ragasits wrote:
>     >     Hello,
>     > 
>     >     We would like to migrate our old databases to new postgres server,
>     >     with the simple backup-restore process. The process run fine
>     >     without errors but when we're  checking the source and the
>     >     migrated datas as field level, we found the following differences:
>     [...]
>     > 
>     >     Field type: REAL
>     >     pg93: 2.2
>     >     pg10: 2.20000005
>     > 
>     > 
>     > Those have to do with rounding. Precision for real is 6 decimal
>     > digits. Your difference is on the 8-th digit.
> 
>     Nitpick: Precision is 24 binary digits which is *about* 6 decimal
>     digits. The number which is actually stored (on both pg93 and pg10) is
>     actually 2.2000000476837158203125 (1.00011001100110011001101 * 2^1 in
>     binary). Apparently Pg9.3 rounds this to "2.2" on output while Pg10
>     prints the more precise (but still not exact) "2.20000005".
> 
>     (I would argue that the Pg9.3 output is better, since it represents the
>     same value in fewer digits, but always printing the minimum number of
>     digits necessary is surprisingly difficult.)
> 
>              hp
> 
>     -- 
>         _  | Peter J. Holzer    | we build much bigger, better disasters now
>     |_|_) |                    | because we have much more sophisticated
>     | |   | hjp@hjp.at <mailto:hjp@hjp.at>         | management tools.
>     __/   | http://www.hjp.at/ | -- Ross Anderson <https://www.edge.org/>
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: PG8.3->10 migration data differences
Next
From: David Steele
Date:
Subject: Re: Volume partitioning (was Re: pgbackrest when data/base issymlinked to another volume)