Forum OpenACS Q&A: Getting german settings to work in postgres

Today i tried to finally get german settings to work correctly on my 
system. 
I think I did everything according to the information in the docs, 
but it does not work. Hopefully someone has gone thru the same 
procedure and can tell me what I did wrong.

I downloaded pg722, compiled and installed

The compile options where: 

configure --prefix=/usr/local/pgsql2 --enable-locale --enable-
multibyte=UNICODE

I initialized the db-cluster with initdb. The env settings at that 
time where

export LANG=de_DE
export LC_ALL=de_DE

After that I started the postmaster.

I checked for the settings with pg_controldata

bash-2.05a$ ./pg_controldata
pg_control version number:            71
Catalog version number:               200201121
Database state:                       IN_PRODUCTION
pg_control last modified:             Wed Oct  2 16:57:52 2002
Current log file id:                  0
Next log file segment:                1
Latest checkpoint location:           0/1367C0
Prior checkpoint location:            0/109664
Latest checkpoint's REDO location:    0/1367C0
Latest checkpoint's UNDO location:    0/0
Latest checkpoint's StartUpID:        8
Latest checkpoint's NextXID:          137
Latest checkpoint's NextOID:          24748
Time of latest checkpoint:            Wed Oct  2 16:57:50 2002
Database block size:                  8192
Blocks per segment of large relation: 131072
LC_COLLATE:                           de_DE
LC_CTYPE:                             de_DE

Then I created a test database with 2 test tables. 

                 Table "test1"
 Column |           Type           | Modifiers
--------+--------------------------+-----------
 int1   | integer                  | not null
 date1  | timestamptz |
Primary key: test1_pkey

I inserted a test entry in test1 and tried to query from it.

test=# select to_char(date1, 'DAY') from test1;
  to_char
-----------
 WEDNESDAY

I had hoped that with german settings this would be "MITTWOCH".

----------------------------------------------------------------

I created a second table to check for sorting. For this I changed the 
encoding to LATIN1 and inserted several strings into the test table.

                Table "test2"
  Column  |         Type          | Modifiers
----------+-----------------------+-----------
 int1     | integer               | not null
 str_test | character varying(30) |
Primary key: test2_pkey

test=# select * from test2 order by str_test;

 int1 | str_test
------+----------
   10 | üüü
    1 | aaa
    2 | aAA
    3 | AAA
   14 | ööö
   13 | äää
   12 | ÄÄÄ
   15 | ÖÖÖ
   11 | ÜÜÜ
   16 | ßßß
   18 | bbb
   17 | BBB
   19 | ccc
   21 | CCC
   20 | DDD
    9 | mmm
    8 | MMM
    4 | zzz
    5 | zzZ
    6 | zZZ
    7 | ZZZ
This does not look right too.

I would be very happy about any hints to improve the situation.

Many TIA, 
Collapse
Posted by Peter Alberer on

Has anyone been able to get this to work for another language than english (in postgres) ?

Willkommen bei psql, dem interaktiven PostgreSQL-Terminal.

Geben Sie ein:  copyright für Urheberrechtsinformationen
                h für Hilfe über SQL-Anweisungen
                ? für Hilfe über interne Anweisungen
                g oder Semikolon, um eine Abfrage auszuführen
                q um zu beenden

test=# select to_char(now(),'DAY');
  to_char
-----------
 FRIDAY
(1 Zeile)