ďťż
 
=?iso-8859-2?Q?PostgreSQL_-_jak_ustawi=E6_sortowanie=3F?= ďťż
 
=?iso-8859-2?Q?PostgreSQL_-_jak_ustawi=E6_sortowanie=3F?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

=?iso-8859-2?Q?PostgreSQL_-_jak_ustawi=E6_sortowanie=3F?=



Marek - 06-05-2006 00:07
=?iso-8859-2?Q?PostgreSQL_-_jak_ustawi=E6_sortowanie=3F?=
  Witam,

Mam pewien kłopot techniczny. Na serwerze posadzona jest baza danych
PostgreSQL 8.0.7 i może zostać uruchomiona również najnowsza jej wersja.
Część aplikacji WWW będzie pracowała w ISO 8859-2 a część w UTF-8. Dla obu
tych kodowań będą zakładane różne bazy w tym samym Postgresie. Powiedzcie mi
jak należy skonfigurować bazę danych (o ile jest to w ogóle wykonalne) w
sensie systemu jaki i poszczególnych baz tak aby osiągnąć następujące cele:

1. Jeżeli aplikacja pracuje w ISO to zakładam bazę createdb z opcją
sortowania LATIN-2. Sortowanie polskie "SELECT ... ORDER BY" ma działać
poprawnie.
2. Jeżeli aplikacja pracuje w UTF-8 to zakładam bazę createdb z opcją
sortowania UNICODE. Sortowanie polskie "SELECT ... ORDER BY" ma działać
poprawnie.
3. Jeżeli aplikacja pracuje w UTF-8 to zakładam bazę createdb z opcją
sortowania UNICODE. Sortowanie w innych europejskich językach (z
uwzględnieniem rosyjskiego) "SELECT ... ORDER BY" ma działać poprawnie.

Trzecia opcja nie jest kluczowa lecz dwie pierwsze owszem. Powiedzcie mi
proszę co powinno być wykonane krok po kroku aby to wszystko funkcjonowało?
Jakie parametry initdb powinny być zastosowane aby na jednym programie
PostgreSQL można było poprawnie sortować w przypadkach 1 i 2 i jeśli się da
to również 3? Czy da się to zrobić na jednym Postgresie? Jeśli nie to
istnieje możliwość uruchomienia na innym porcie drugiego Postgresa.
Administrator powiedział mi, że nie rozwiąże to sprawy gdyż Postgres podobno
czerpie swoje ustawienia również ze zmiennych systemowych więc cały system
serwera musiałby mieć inne kodowanie dla każdej z tych baz co z konsekwencji
uniemożliwia uruchomienie obu Postgresów na jednej maszynie. Tyle się
dowiedziałem.

--
Pozdrawiam,
Marek





=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 06-05-2006 00:07

  Marek wrote:
> Witam,
>
> Mam pewien kłopot techniczny. Na serwerze posadzona jest baza danych
> PostgreSQL 8.0.7 i może zostać uruchomiona również najnowsza jej wersja.
> Część aplikacji WWW będzie pracowała w ISO 8859-2 a część w UTF-8. Dla
> obu tych kodowań będą zakładane różne bazy w tym samym Postgresie.
> Powiedzcie mi jak należy skonfigurować bazę danych (o ile jest to w
> ogóle wykonalne) w sensie systemu jaki i poszczególnych baz tak aby
> osiągnąć następujące cele:
>
> 1. Jeżeli aplikacja pracuje w ISO to zakładam bazę createdb z opcją
> sortowania LATIN-2. Sortowanie polskie "SELECT ... ORDER BY" ma działać
> poprawnie.

Baza w tym przypadku również może być UTF-8. Wystarczy tylko powiedzieć
postgresowi, jakie kodowanie ma klient (biblioteka pglib w większości
przypadków zrobi to automatycznie, pewne kłopoty miałem pod windowsem).

> 2. Jeżeli aplikacja pracuje w UTF-8 to zakładam bazę createdb z opcją
> sortowania UNICODE. Sortowanie polskie "SELECT ... ORDER BY" ma działać
> poprawnie.
> 3. Jeżeli aplikacja pracuje w UTF-8 to zakładam bazę createdb z opcją
> sortowania UNICODE. Sortowanie w innych europejskich językach (z
> uwzględnieniem rosyjskiego) "SELECT ... ORDER BY" ma działać poprawnie.
>
> Trzecia opcja nie jest kluczowa lecz dwie pierwsze owszem. Powiedzcie mi
> proszę co powinno być wykonane krok po kroku aby to wszystko
> funkcjonowało? Jakie parametry initdb powinny być zastosowane aby na
> jednym programie PostgreSQL można było poprawnie sortować w przypadkach
> 1 i 2 i jeśli się da to również 3? Czy da się to zrobić na jednym
> Postgresie? Jeśli nie to istnieje możliwość uruchomienia na innym porcie
> drugiego Postgresa. Administrator powiedział mi, że nie rozwiąże to
> sprawy gdyż Postgres podobno czerpie swoje ustawienia również ze
> zmiennych systemowych więc cały system serwera musiałby mieć inne
> kodowanie dla każdej z tych baz co z konsekwencji uniemożliwia
> uruchomienie obu Postgresów na jednej maszynie. Tyle się dowiedziałem.

Admin sporo wie, ale nie wszystko. :)
Liczą się ustawienia locale w czasie inicjowania klastra. Do tego
przecież środowisko można odpowiednio ustawić przed odpaleniem każdego
postgresa (np. w skrypcie uruchamiającym postgresa).

Na temat sortowania w innych językach sie nie wypowiem bo problemu nie
zgłębiałem. Tu najlepiej byłoby poczekać na wypowiedź Adama. :)

--
P.M.




Marek - 06-05-2006 00:07
=?iso-8859-2?Q?Re:_PostgreSQL_-_jak_ustawi=E6_sortowanie=3F?=
  > Baza w tym przypadku również może być UTF-8. Wystarczy tylko powiedzieć
> postgresowi, jakie kodowanie ma klient (biblioteka pglib w większości
> przypadków zrobi to automatycznie, pewne kłopoty miałem pod windowsem).

Czy chodzi tu o kodowanie znaków czy sposób sortowania rekordów? Wydaje mi
się, że "powiedzenie" Postgesowi odnośnie kodowania klienta określa tylko
reprezentację znaków w bazie a nie sposób ich sortowania.

> Admin sporo wie, ale nie wszystko. :)
> Liczą się ustawienia locale w czasie inicjowania klastra. Do tego
> przecież środowisko można odpowiednio ustawić przed odpaleniem każdego
> postgresa (np. w skrypcie uruchamiającym postgresa).

Konkludując: nie można odpalić jednego Postgresa sortującego dobrze zarówno
dla utworzonych w nim baz w trybie Latin 2 jaki i UTF-8? Innymi słowy jeśli
ustawimy w initdb locale na UTF to bazy wykreowane jako Latin 2 nie będą
dobrze sortowały się i odwrotnie: jeżeli Postgres był dostosowany w initdb
do Latin 2 to nie ma sensu inicjowania w nim baz UTF bo "order by" wyłozy
się na polskich znakach?

Może nie wyrażam się jasno bo nie znam się na zagadnieniach serwerowych
dlatego zrobiłem przykład obrazujący moje intencje. Plik jest do pobrania
stąd:
http://www.design-cms.com/test.zip

Są tam 2 katalogi: latin i utf. W każdym z nich jest skrypt do zainicjowania
testowej tabeli i wypełnienia jej znakami w kodowaniu jak nazwa katalogu. W
każdym z katalogów jest też index.php odczytujący z bazy te dane i
pokazujący je w porządku alfabetycznym w przeglądarce. W obu przypadkach
oczekuję porządku alfabetycznego. Czy to się da zrobić na jednym postgresie
ale w różnych bazach?

> Na temat sortowania w innych językach sie nie wypowiem bo problemu nie
> zgłębiałem. Tu najlepiej byłoby poczekać na wypowiedź Adama. :)

Więc czekamy na Wielkiego Adama :-)
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO Czy zna (obsługuje) ktoś program Iso Draw ? MYSQL - kodowanie w ISO-PL strona plus baza w iso do utf-8 Kodowanie: z iso na utf postgresql - int/int postgresql Select count(*) czy raczej Select count(ID) Postgres - replikcja master-master Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL] =?UTF-8?Q?=5Bmysql=5D_jak_pobra=C4=87_warto=C5=9B=C4=87_ AUTO=5F?==?UTF-8?Q?INCREMENT=3F?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • fantazia.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com