[re-posting as I mistakenly sent this only to the OP]
On 09/04/10 16:49, Wolfgang.Koenig wrote:
> initdb stores default client_encoding from environment-variable
>
>
> Postgres Version: 8.4.3 and 8.3.6
> Operating System: Sun Solaris 5.10 and SuseEnterprise 9
>
> When a database is initialized with the initdb-command, the default
> client_enconding, which will be stored in the DB, depends on the value
> of the environment-variable PGCLIENTENCODING at the time of running
> initdb. This behaviour is not documented.
> Furthermore I didn't find a command to change this
> default client_encoding in the database later.
> The default client_encoding does not depend on the database encoding!
I cannot reproduce this issue based on the test script you've provided.
However, I was testing on Ubuntu 9.10, not a vanilla 8.4, so this
can't be taken as definitive.
$ env | grep PG
$ PGPORT=7654 psql -U postgres postgres -c 'show client_encoding;'
client_encoding
-----------------
UTF8
(1 row)
$ PGPORT=7654 psql -U postgres postgres
(snip blah blah)
postgres=# show port ;
port
------
7654
(1 row)
postgres=# \l
List of databases
Name | Owner | Encoding | Collation | Ctype | Access
privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_AU.UTF-8 | en_AU.UTF-8 |
template0 | postgres | UTF8 | en_AU.UTF-8 | en_AU.UTF-8 | =c/postgres
:
postgres=CTc/postgres
template1 | postgres | UTF8 | en_AU.UTF-8 | en_AU.UTF-8 | =c/postgres
:
postgres=CTc/postgres
(3 rows)
$ PGCLIENTENCODING="WIN1250" PGPORT=7654 psql -U postgres postgres -c
'show client_encoding;'
client_encoding
-----------------
WIN1250
(1 row)
--
Craig Ringer