From: | Nicolai Tufar <ntufar(at)yahoo(dot)com> |
---|---|
To: | PostgreSQL Turkiye <pgsql-tr-genel(at)postgresql(dot)org> |
Cc: | linux-baslangic(at)liste(dot)linux(dot)org(dot)tr |
Subject: | Re: PostgreSQL encoding yada yerellestirme problemi |
Date: | 2003-09-28 21:58:00 |
Message-ID: | 20030928215800.83503.qmail@web40907.mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-tr-genel |
PostgreSQL, CLENT_ENCODING gibi değişkenlerini
kk harflerle saklıyor: "client_encoding". Ancak
kullanıcı byk harflerle girerse, kk harflere
standart 7 bit ASCII kurallara gre değil, geerli
olan locale kurallarına gre eviriyor. Yani "I",
"i"ye değil, "ı"ye eviriliyor, sorun oradan
kaynaklanıyor.
SET CLiENT_ENCODiNG TO 'LATIN5'
ya da
set client_ncoding to 'latin5'
Bunu dzeltmek iin geen sene aralık ayında
mcadele
verdim ancak PostgreSQL programcıları bunun
gerekli
olduğuna inandıramadım.
Saygılarla,
Nicolai Tufar
--- Devrim GUNDUZ <devrim(at)gunduz(dot)org> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
> Merhaba,
>
> On Sun, 28 Sep 2003, ZEKI CATAV wrote:
>
> > SQL hatasi:
> > HATA: 'clent_encodng' is not a valid option name
> > Ustteki hata, asagidaki ifade icinde olustu:
> > SET CLIENT_ENCODING TO 'LATIN5'
> >
>
-----------------------------------------------------------------------------------
> > MDK 9.1 (Bamboo) yuklu bir makinede phpPgAdmin 3.0.1
> ile psql 7.3.2, the
> > PostgreSQL uzerinde veritabanina ulasmaya calisirken
> yukaridaki hatayi
> > aliyorum.
> >
>
------------------------------------------------------------------------------
> > dene=# SHOW CLIENT_ENCODING;
> > HATA: Option 'client_encoding' is not recognized
> > dene=#
> > dene=# SHOW CLiENT_ENCODiNG;
> > client_encoding
> > -----------------
> > SQL_ASCII
> > (1 row)
>
> Oncelikle elimdekini gostereyim:
>
> test=# SELECT version();
> version
> -
>
------------------------------------------------------------------------------------------------------------
> PostgreSQL 7.4beta3 on i686-pc-linux-gnu, compiled by
> GCC gcc (GCC) 3.2.2
> 20030222 (Red Hat Linux 3.2.2-5)
> (1 row)
>
> test=# SHOW client_encoding ;
> client_encoding
> - -----------------
> LATIN5
> (1 row)
>
> test=# SHOW CLIENT_ENCODING;
> client_encoding
> - -----------------
> LATIN5
> (1 row)
>
> Peki ikimizde neden farkli? Sanirim tek fark; benim
> initdb asamasinda
> encoding'i LATIN5 olarak vermis olmam:
>
> /usr/local/pgsql/bin/initdb -E LATIN5 -D
> /usr/local/pgsql-7.4beta3
>
> seklinde yani.
>
> Kaynak koddan kurulumda bu kolay. Zaten initdb islemini
> kendiniz
> yapacaginiz icin sorun olmaz. Ama RPM kurulumunda,
> /etc/init.d/postgresql
> betigi ile cok az oynamaniz gerekecek. Bunu ilk
> kurulumda, sunucuyu
> baslatmadan 'ONCE' yapmaniz gerekli. Betigin icinde soyle
> bir satir
> olacak:
>
> su -l postgres -s /bin/sh -c "/usr/bin/initdb
> --pgdata=$PGDATA > /dev/null 2>&1" < /dev/null
>
> Bunu su sekilde degistirin:
> su -l postgres -s /bin/sh -c "/usr/bin/initdb
> --pgdata=$PGDATA -E LATIN5 > /dev/null 2>&1" < /dev/null
>
> Sonra postgresql basladiginda veri dizini ($PGDATA, RPM
> kurulumunda
> /var/lib/pgsql dizini, kaynak koddan kurulumda genelde
> /usr/local/pgsql/data dizinidir) LATIN5 ile initialize
> edilecek. LATIN5,
> Turkce'nin de icinde bulundugu dillere destek veren
> encoding.
>
> Peki elinizde zaten kurulmus olan bir veritabani varsa? O
> zaman,
> pg_dumpall ile yedeklersiniz veritabaninizi (hatta
> /var/lib/pgsql dizinini
> de yedekleyiniz) ve rpm'leri kaldirip bu dizini de silip
> yeniden rpmleri
> kurup ustte dedigimi yapabilirsiniz.
>
> Ya da ya da... initdb ile yeni bir veri alani
> olusturursunuz, ustte
> yazdigim sekilde (initdb -E ...). PostgreSQL'i durdudup
> ustteki init
> betigindeki PGDATA degiskeninini yeni dizininiz ile
> degistirip sunucunuzu
> yeniden baslatir ve veritabaninizi yeniden
> baslatabilirsiniz.
>
> Bu arada, client_encoding'i neden buyuk harfle yazma
> gereksinmesi
> duydunuz? :) SET ya da SHOW'dan sonra birkac harf yazip
> taba bastiginizda
> zaten kucuk harfle tamamliyor bunu.
>
> Bir sey daha... Simdi dikkatimi cekti :( Turkce destegi
> ile ilgili bir
> sorun, Nicolas Tufar'in katkilariyla 7.3.3 icinde
> cozulmustu. Belki onunla
> da ilgili olabilir sorununuz. 7.3.4'e guncelleyip dener
> misiniz? RPM'leri
> ftp.tr.PostgreSQL.org/pub/PostgreSQL adresinde olacakti.
>
> Saygilar,
> - --
> Devrim GUNDUZ
> devrim(at)gunduz(dot)org devrim(dot)gunduz(at)linux(dot)org(dot)tr
> http://www.tdmsoft.com
> http://www.gunduz.org
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.0.7 (GNU/Linux)
>
>
iD8DBQE/dthUtl86P3SPfQ4RAmr4AKCrFU6im5g1uKF70nzd/I1O99MR4QCfccMz
> LBPBnWKNob9qX+vxewmH9Ms=
> =kkNM
> -----END PGP SIGNATURE-----
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 1: subscribe ve unsubscribe komutlarn
> majordomo(at)postgresql(dot)org
__________________________________
Do you Yahoo!?
The New Yahoo! Shopping - with improved product search
http://shopping.yahoo.com
From | Date | Subject | |
---|---|---|---|
Next Message | Devrim GUNDUZ | 2003-10-17 16:01:33 | [pgadmin-hackers] pgAdmin III v1.0.1 Released (fwd) |
Previous Message | Devrim GUNDUZ | 2003-09-28 12:47:15 | Re: PostgreSQL encoding yada yerellestirme problemi |