Re: Problem with pg_dump and decimal mark - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Problem with pg_dump and decimal mark
Date
Msg-id 547E4795.7040206@aklaver.com
Whole thread Raw
In response to Re: Problem with pg_dump and decimal mark  (Eric Svenson <esvenson74@googlemail.com>)
Responses Fwd: Problem with pg_dump and decimal mark  (Eric Svenson <esvenson74@googlemail.com>)
List pgsql-general
On 11/29/2014 12:25 AM, Eric Svenson wrote:
>
>
>
>             Seems you have a locale mismatch issue. The dump is coming
>             from a locale
>             where a '.' is the decimal mark and is being restored to a
>             locale where
>             ',' is the mark. Look at what the locales are the machines
>             that work and
>             the one that does not.
>
>
>
> I have already done that and found something strange:
>
> On the PC where the backup was done with pg_dump, all locale settings of
> Postgres were English/United States. (LC_COLLATE, LC_CTYPE, LC_MONETARY,
> LC_NUMERIC in postgresql.conf)

OS and OS version?
Postgres version?
What was the pg_dump command used?

>
> On the first PC on which I tried to load the backup file with psql, all
> locale settings if Postgres were  German_Germany. Everything is ok, the
> SQL file with '.' as decimal point was accepted without a problem

OS and OS version?
Postgres version?
How was it loaded via psql?
Was the psql on the same machine and from the same version of Postgres?

>
> On the second PC (Virtual Machine) I had the SAME settings in
> postgresql.conf (German_Germany)

OS and OS version?
Postgres version?
How was it loaded via psql?
Did you use the psql on the VM or did you use the psql on the host?
Was the Postgres/psql on the host the same as the VM?
What are you using for virtualization?
What is host OS?

>
> -> no success
>
> I tried to change all the settings to English/United States, restart
> postgres
>
> -> still no success
>
> Changed all Windows settings to English / United States
>
> -> still no success.
>
> So what I am searching for (at the moment without success) is the
> 'switch' which decides what decimal seperator to expect by psql.

Well according to below, flipping a switch is not necessary. There is a
mismatch occurring, which is why I posed all the questions above. To
narrow the possibilities it would help to a have fuller picture of what
the environment is in each situation.

>
>         That's what it sounds like all right, but how could that be?
>         The behavior
>         of float8in/float8out is not supposed to be locale-dependent.
>
>         float8in does depend on strtod(), whose behavior is locale-dependent
>         according to POSIX, but we keep LC_NUMERIC set to "C" to force it to
>         only believe that "." is decimal point.
>
>
>     Not sure if this makes a difference but if I am reading the original
>     post correctly the OP was trying a plain text restore via psql.
>
>
> This is correct.
>
>
> regards and thanks for your support,
> Eric Svenson
>


--
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: Merlin Moncure
Date:
Subject: Re: Programmatic access to interval units
Next
From: Adrian Klaver
Date:
Subject: Re: Postgres 9.2 PITR testing to before DROP DATABASE ends up removing file system files