From: | Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com> |
---|---|
To: | 坂本 翼 <sakamoto(dot)tsubasa(at)ryobi(dot)co(dot)jp>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: client encoding that psql command sets |
Date: | 2014-02-06 11:47:29 |
Message-ID: | 52F37651.6010508@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers |
On 02/05/2014 11:43 PM, 坂本 翼 wrote:
> Hi all,
>
> When I tried to psql command, I found that the result of command seems to be
> different from explanation of the manual. Please tell me which is
> correct performance, the result of command or the explanation of manual.
> I show the details as follows.
>
> [Events]
> The encoding that psql command sets has difference between the result of command
> and the explanation of manual.
>
> The following is the explanation of encoding that psql command sets,
> which I made extracts from the 9.2 manual.
> ---------------------------------------------------------------------------
> VI. Reference / II. PostgreSQL Client Applications / psql / Connecting to a Database
> "If at least one of standard input or standard output are a terminal,
> then psql sets the client encoding to "auto",
> which will detect the appropriate client encoding from the locale settings
> (LC_CTYPE environment variable on Unix systems).
> If this doesn't work out as expected,
> the client encoding can be overridden using the environment variable PGCLIENTENCODING."
> ----------------------------------------------------------------------------
> Above explanation says that "If at least one of standard input or standard output
> are a terminal, then psql sets the client encoding to "auto",
> which will detect the appropriate client encoding from the locale settings
> (LC_CTYPE environment variable on Unix systems)".
> But according to the result from psql command, it seems that the appropriate
> client encoding is NOT detected from the locale settings.
>
> The result of psql command is following.
>
> [Precondition of test]
> - PostgreSQL VL:9.2.4
> - Locale settings encoding : ja_JP.eucJP (LANG)
Not sure that it makes a difference but the docs say psql looks at
LC_CTYPE not LANG for Unix systems. You did not say what OS you are
working on though from the examples I am guessing some form of Unix.
> - Client encoding:UTF8
> - client_encoding(paramater of postgresql.conf) : None specified
> - "test.txt" is psql's input file which is written "\encoding".
>
> [Result]
> 1) In case both standard input and standard output are a terminal
> $ psql postgres -f test.txt -o result.txt
> EUC_JP
> → Locale setting encoding
>
> 2) In case only standard input is a terminal
> $ psql postgres -f test.txt > result.txt
> $ cat result.txt
> UTF8
> →Client encoding
>
> 3) In case only standard output is a terminal
> $ psql postgres -o result.txt < test.txt
> UTF8
> →Client encoding
>
> 4) In case both standard input and standard output are not a terminal
> $ psql postgres < test.txt > result.txt
> $ cat result.txt
> UTF8
> →Client encoding
>
> 1) and 4) performed just as manual, but 2) and 3) do not.
> If 2) and 3) performed just as munual, I think that their encoding should be EUC_JP
> that is locale setting encoding.
>
> If manual has mistake, I think that correct explanation is following.
>
> "If BOTH standard input AND standard output are a terminal, then psql sets
> the client encoding to "auto", which will detect the appropriate client encoding
> from the locale settings (LC_CTYPE environment variable on Unix systems)."
>
> What do you think?
>
> Warmest Regards.
>
>
>
>
>
>
>
--
Adrian Klaver
adrian(dot)klaver(at)gmail(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2014-02-06 12:37:33 | Re: Temporary table already exists |
Previous Message | mephysto | 2014-02-06 10:11:46 | Re: Temporary table already exists |
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Kapila | 2014-02-06 12:27:50 | Re: Performance Improvement by reducing WAL for Update Operation |
Previous Message | Heikki Linnakangas | 2014-02-06 11:36:44 | Small GIN optimizations (after 9.4) |