Lists: | pgsql-de-allgemein |
---|
From: | Kennard Simon <kennard(at)iehk(dot)rwth-aachen(dot)de> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Problem mit lc-collect |
Date: | 2006-05-24 10:18:22 |
Message-ID: | 447432EE.2070309@iehk.rwth-aachen.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Hi,
erstmal zur Information, ich benutze Postgres 7.4 auf Debian.
Ich habe einen Datenbank mit Unicode als encoding erstellt. Nach mehrere
Input von Daten, habe ich festgestellt, dass in einigen Tabellen, wo
drin Umlaute sich befinden, werden die Daten nicht richtig sortiert.
(ORDER By name)
eine Lösung wäre dann " initdb -E iso-8859-1 --locale=de_DE ".
Ich möchte aber Encode nicht LATIN1 sondern unicode(utf8). Deswegen
möchte ich hier fragen ob
initdb -E unicode --lc_collate=de_DE --lc_ctype=de_DE
mir die gewünschte Lösung bringen würde, dass nachher die Umlaute
richtig sortiert werden.
Weil, ich denke mal, dass die LC_COLLATE wenig zu tun mit der Encode
hat. Oder ist das falsch ?
Danke für euere Hilfe,
Kennard S.
From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Cc: | Kennard Simon <kennard(at)iehk(dot)rwth-aachen(dot)de> |
Subject: | Re: Problem mit lc-collect |
Date: | 2006-05-24 11:15:41 |
Message-ID: | 200605241315.42474.peter_e@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Am Mittwoch, 24. Mai 2006 12:18 schrieb Kennard Simon:
> Ich möchte aber Encode nicht LATIN1 sondern unicode(utf8). Deswegen
> möchte ich hier fragen ob
>
> initdb -E unicode --lc_collate=de_DE --lc_ctype=de_DE
>
> mir die gewünschte Lösung bringen würde, dass nachher die Umlaute
> richtig sortiert werden.
Die richtige Antwort is
initdb -E UTF8 --locale=de_DE.utf8
(oder die Locale-Optionen halt separat).
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
From: | Kennard Simon <kennard(at)iehk(dot)rwth-aachen(dot)de> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: Problem mit lc-collect |
Date: | 2006-05-26 07:52:28 |
Message-ID: | 4476B3BC.8000304@iehk.rwth-aachen.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Hallo,
ich habe mit pg_controldata die localle überprüft und tatsächlich,
lc_collate und lc_ctype ='C', obwohl beim Initialisieren wurde sie auf
'de_DE.utf8' eingestellt.
Die initialisierte und die gestartete Version nicht die selbe sind, wie
kann das passieren ? wie kann man sicherstellen, dass was man
initialisiert hat, wird auch dann 100 %tig gestartet. ??
ich habe nur folgendes gemacht:
1. ich habe den Server heruntergefahren : /etc/init.d/postgresql stop
2. Data-Verzeichniss gelöscht : rm -r /var/lib/postgres/data/
3. Initialisierung mit initdb (als postgres):
./usr/lib/postgresql/bin/initdb -E UTF8 --lc_collate=de_DE.utf8
--lc_ctype=de_DE.utf8 /var/lib/postgres/data/
4. Server bzw. Postmaster wieder starten (als Postgres) :
./usr/lib/postgresql/bin/pg_ctl start -D /var/lib/postgres/data/
Habe ich was falsches gemacht ? , dass ich andere Version gestartet habe
,als ich initialisiert habe ????
Peter Eisentraut schrieb:
> Am Mittwoch, 24. Mai 2006 14:15 schrieb Kennard Simon:
>
>>ich habe deine Lösung probiert, als erster gab postgres beim initdb eine
>>Fehlermeldung, dass lc_message=de_DE.utf8 nicht richtig war. Deswegen
>>habe ich dann die locale-optionen separat angegeben, aber halt nur für
>>lc_collate und lc_ctype. Beim Initialisieren wurde es auch richtig
>>angezeigt dan diese beide lcs = de_DE.utf8 sind.
>>Dann habe ich postmaster gestartet und eine createdb test1 gemacht.
>>Aber als ich in test1 war und show lc_collate; eingegeben habe, wurde
>>mir lc_collate = 'C' angezeigt.
>
>
> Das kann eigentlich nur sein, wenn die initialisierte und die gestartete
> Version nicht die selbe sind. Man kann sich die wirklich eingestellte Locale
> auch mit pg_controldata anzeigen lassen.
>
From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Cc: | Kennard Simon <kennard(at)iehk(dot)rwth-aachen(dot)de> |
Subject: | Re: Problem mit lc-collect |
Date: | 2006-05-26 08:54:54 |
Message-ID: | 200605261054.54701.peter_e@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Am Freitag, 26. Mai 2006 09:52 schrieb Kennard Simon:
> 1. ich habe den Server heruntergefahren : /etc/init.d/postgresql stop
> 2. Data-Verzeichniss gelöscht : rm -r /var/lib/postgres/data/
> 3. Initialisierung mit initdb (als postgres):
> ./usr/lib/postgresql/bin/initdb -E UTF8 --lc_collate=de_DE.utf8
> --lc_ctype=de_DE.utf8 /var/lib/postgres/data/
Da hab ich schon mal meine Zweifel:
$ initdb -E UTF8 --lc_collate=de_DE.utf8 --lc_ctype=de_DE.utf8 foo
initdb: invalid option: --lc_collate=de_DE.utf8
Try "initdb --help" for more information.
Ich würde jedenfalls gerne mal die tatsächlichen Befehle mit Ausgabe sehen.
Und dann mal direkt nach dem initdb ein pg_controldata ausführen und hier
zeigen.
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
From: | kennard(at)iehk(dot)rwth-aachen(dot)de |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: Problem mit lc-collect |
Date: | 2006-05-26 09:08:54 |
Message-ID: | 50140.172.16.94.203.1148634534.squirrel@webmail.iehk.rwth-aachen.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Hi,
postgres(at)pgsql:~/data$ cd /usr/lib/postgresql/bin
postgres(at)pgsql:/usr/lib/postgresql/bin$ ./initdb -E UTF8
--lc-collate=de_DE.utf8 --lc-ctype=de_DE.utf8 /var/lib/postgres/data/
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locales:
COLLATE: de_DE.utf8
CTYPE: de_DE.utf8
MESSAGES: C
MONETARY: C
NUMERIC: C
TIME: C
fixing permissions on existing directory /var/lib/postgres/data/... ok
creating directory /var/lib/postgres/data//base... ok
creating directory /var/lib/postgres/data//global... ok
creating directory /var/lib/postgres/data//pg_xlog... ok
creating directory /var/lib/postgres/data//pg_clog... ok
selecting default max_connections... 100
selecting default shared_buffers... 1000
creating configuration files... ok
creating template1 database in /var/lib/postgres/data//base/1... ok
initializing pg_shadow... ok
enabling unlimited row size for system tables... ok
initializing pg_depend... ok
creating system views... ok
loading pg_description... ok
creating conversions... ok
setting privileges on built-in objects... ok
creating information schema... ok
vacuuming database template1... ok
copying template1 to template0... ok
Success. The database server should be started automatically.
If not, you can start the database server using:
/etc/init.d/postgresql start
postgres(at)pgsql:/usr/lib/postgresql/bin$
Diese initdb habe ich durchgeführt, nach dem ich Postmaster gestoppt habe
und DATA-Verzeichniss gelöscht habe.
> Am Freitag, 26. Mai 2006 09:52 schrieb Kennard Simon:
>> 1. ich habe den Server heruntergefahren : /etc/init.d/postgresql stop
>> 2. Data-Verzeichniss gelöscht : rm -r /var/lib/postgres/data/
>> 3. Initialisierung mit initdb (als postgres):
>> ./usr/lib/postgresql/bin/initdb -E UTF8 --lc_collate=de_DE.utf8
>> --lc_ctype=de_DE.utf8 /var/lib/postgres/data/
>
> Da hab ich schon mal meine Zweifel:
>
> $ initdb -E UTF8 --lc_collate=de_DE.utf8 --lc_ctype=de_DE.utf8 foo
> initdb: invalid option: --lc_collate=de_DE.utf8
> Try "initdb --help" for more information.
>
> Ich würde jedenfalls gerne mal die tatsächlichen Befehle mit Ausgabe
> sehen.
> Und dann mal direkt nach dem initdb ein pg_controldata ausführen und hier
> zeigen.
>
> --
> Peter Eisentraut
> http://developer.postgresql.org/~petere/
>
>
From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Cc: | kennard(at)iehk(dot)rwth-aachen(dot)de |
Subject: | Re: Problem mit lc-collect |
Date: | 2006-05-26 09:37:43 |
Message-ID: | 200605261137.45317.peter_e@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Am Freitag, 26. Mai 2006 11:08 schrieb kennard(at)iehk(dot)rwth-aachen(dot)de:
> Hi,
>
> postgres(at)pgsql:~/data$ cd /usr/lib/postgresql/bin
> postgres(at)pgsql:/usr/lib/postgresql/bin$ ./initdb -E UTF8
> --lc-collate=de_DE.utf8 --lc-ctype=de_DE.utf8 /var/lib/postgres/data/
> The files belonging to this database system will be owned by user
> "postgres". This user must also own the server process.
>
> The database cluster will be initialized with locales:
> COLLATE: de_DE.utf8
> CTYPE: de_DE.utf8
> MESSAGES: C
> MONETARY: C
> NUMERIC: C
> TIME: C
>
> fixing permissions on existing directory /var/lib/postgres/data/... ok
> creating directory /var/lib/postgres/data//base... ok
> creating directory /var/lib/postgres/data//global... ok
> creating directory /var/lib/postgres/data//pg_xlog... ok
> creating directory /var/lib/postgres/data//pg_clog... ok
> selecting default max_connections... 100
> selecting default shared_buffers... 1000
> creating configuration files... ok
> creating template1 database in /var/lib/postgres/data//base/1... ok
> initializing pg_shadow... ok
> enabling unlimited row size for system tables... ok
> initializing pg_depend... ok
> creating system views... ok
> loading pg_description... ok
> creating conversions... ok
> setting privileges on built-in objects... ok
> creating information schema... ok
> vacuuming database template1... ok
> copying template1 to template0... ok
>
> Success. The database server should be started automatically.
> If not, you can start the database server using:
>
> /etc/init.d/postgresql start
> postgres(at)pgsql:/usr/lib/postgresql/bin$
>
> Diese initdb habe ich durchgeführt, nach dem ich Postmaster gestoppt habe
> und DATA-Verzeichniss gelöscht habe.
>
> > Am Freitag, 26. Mai 2006 09:52 schrieb Kennard Simon:
> >> 1. ich habe den Server heruntergefahren : /etc/init.d/postgresql stop
> >> 2. Data-Verzeichniss gelöscht : rm -r /var/lib/postgres/data/
> >> 3. Initialisierung mit initdb (als postgres):
> >> ./usr/lib/postgresql/bin/initdb -E UTF8 --lc_collate=de_DE.utf8
> >> --lc_ctype=de_DE.utf8 /var/lib/postgres/data/
> >
> > Da hab ich schon mal meine Zweifel:
> >
> > $ initdb -E UTF8 --lc_collate=de_DE.utf8 --lc_ctype=de_DE.utf8 foo
> > initdb: invalid option: --lc_collate=de_DE.utf8
> > Try "initdb --help" for more information.
> >
> > Ich würde jedenfalls gerne mal die tatsächlichen Befehle mit Ausgabe
> > sehen.
> > Und dann mal direkt nach dem initdb ein pg_controldata ausführen und hier
> > zeigen.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
--
Peter Eisentraut
http://developer.postgresql.org/~petere/