|
Tere, üldiselt on mul kogemusi erinevate andmebaasidega Postgre jäi viimaseks ja mõneti üllatas mind ning mitte meeldivalt. Sisuliselt on Windows Server, kus peal töötab Postgre 8.4 ja op. süsteemi regiooniseaded on US English. Andmebaas on ise seal UTF8 formaadis. Postgre puudub täielikult võimalus sorteerimisele öelda collationid ette. select customer from customers order by name collate estonian Kui lihtsalt panna order by name, siis täpitähtedega kirjed täiesti valesti sorteeritud, kuna selgub, et Postgre kasutab "collationina" süsteemiseadeid ehk siis Windows Serveri US English. Ma ei söenda ka seal serveril muuta regiooniseadeid, kuna seal palju spetsiifilisi serviceid töös. On võimalik, et teen external dll', mis collationeid tunneks, aga see pole küll normaalne lahendus suht lihtsale probleemile. Tänan, Ingmar Tammeväli |
|
Postgre dokumentatsioon annab ilusti vastuse. :D
teine variant, kirjutad mingi custom funktsiooni collateEst, mis teeb ä -> a-ks jne..
kolmas teed operaatorid <<< ja >>>, mis järjestavad eesti keele järgi
Tänud, olen ka seda põhjalikult lugenud. Üldiselt ei pääse sinna masinale ligi õhtul, proovisin kodumasinal. C:Program FilesPostgreSQL8.4bin>initdb --locale=sv_SE -D testdb initdb: invalid locale name "sv_SE" initdb: invalid locale name "sv_SE" Paistab, et Linuxi maailmas saab ta selle info /etc/locale.gen failist või kusagilt sealt, Windowsi maailma ei tööta Postgre korrektselt, on seotud op.süsteemi default seadetega. Tervitab, Ingmar
(Nov 23 '09 at 21:34)
Ingmar Tammeväli
2
Windows kasutab teisi locale identifikaatoreid http://msdn.microsoft.com/en-us/library/ms776260(VS.85).aspx .
(Nov 23 '09 at 22:01)
egon ♦♦
Tänud, suht suure tõenäosusega lähen nö teise variandi teed. Ma kirjutasin kunagi Firebirdile sarnase external dll'i, kui seal veel collationid olid lapsekingades. Lihtsalt natuke üllatav oli, et Postgre's satun selliste probleemide rägastikku.
(Nov 23 '09 at 22:05)
Ingmar Tammeväli
(Nov 23 '09 at 22:21)
egon ♦♦
|
|
Lisaks Egoni vastusele on võimalik alates 8.4-st sorteerimisjärjekord ja upper/lower käitumine ette anda ka andmebaasipõhiselt CREATE DATABASE käskluses. Näiteks nii:
Uus andmebaas on vaja luua kindlasti template0 põhjal, täpsemalt dokumentatsioonis ja selles blogipostituses. Kahjuks ise proovinud pole, sitsin ikka veel 8.1 peal :). |
|
Täpilised vast ikka päris suvaliselt pole, võiks olla ikka oma alustähe juures, vast? Üks võimalus on kasutada sortimiseks lisatabeleid või -välju, kus on tehtud tähtedele nihe ja siis sama nihet kasutada ka otsingufraaside peal. Et siis midagi sellist:
Nende zzz-dega peaks siis midagi asjalikumat välja mõtlema, vast kõige lihtsam oleks collation ette võtta ja hakata nihutama algusest ja selliste diakriitikute arvelt, mis võib ühendada (nagu n ja ǹ ja ń). Rohkem nagu häkk, siis. Tänud kaasamõtlemise eest ! Olen kunagi ammu sellist trikki kasutanud, probleemid paistab, et jätkub like laused tõusutundlikud Ä <> ä; isegi lihtsad võrdlused ei toimi. upper ja lower käsud ei oska meie täpikatega ka midagi teha. Nüüd ongi mul valida , kas kirjutada täiendav external dll mis korrektselt andmed lowercase keerab ja saan seda sortimisel kasutada, küsimus vaid mis indeksid siis asjadest arvavad. Teine variant teen tõesti mingi hacki. Tervitab, Ingmar
(Nov 23 '09 at 21:05)
Ingmar Tammeväli
|

Suurepärane näide küsimusest, mida on mõtet küsida Pinu.ee-st ja mitte StackOverflow.com-st.