Umlautesortierung in Postgres

Jan-Benedict Glaw jbglaw at lug-owl.de
Di Nov 3 19:33:20 CET 2009


On Tue, 2009-11-03 19:18:16 +0100, Frank Jagusch <frank at jagusch-online.de> wrote:
> Am Montag, den 02.11.2009, 22:47 +0100 schrieb Jan-Benedict Glaw:
> > On Mon, 2009-11-02 19:06:34 +0100, Frank Jagusch <frank at jagusch-online.de> wrote:
> > > Hi alle,
> > > da ist mir was unklar und auch nach einigem Suchen hab' ich keine Lösung
> > > gefunden:
> > > Bei einem SELECT FOO FROM BAR ORDER BY FOO bekomme ich von meinem auf
> > > de_de eingestellten 8.3-er PostgreSQL folgende Sortierung
> > > (exemplarisch):
[...]

> > .... order by regexp_replace (foo, 'ä', 'ae');
> > (Und natürlich noch die übrigen Umlaute mit einbauen.)
> 
> Dein Vorschlag greift in meinem Fall zu kurz: Ich nutze die Datenbank
> von einer alten Delphi Win32 Anwendung aus, die via BDE und ODBC auf die
> Datenbank zugreift. Die BDE schraubt unter Verwendung der vorhandenen
> Indexe selber SELECTs zusammen - da kann ich keine Funktionsaufrufe in
> die ORDER BY Clause bringen.

Ist 'nen böser Hack, aber Du könntest die Original-Tabelle umbenennen
und einen view gleichen Namens anlegen, der in sich wie oben skizziert
sortiert ist. Falls auf die Daten auch geschrieben wird, kannst Du das
mit Triggern abfangen und auf die Original-Tabelle umbiegen.

Das klappt alles natürlich um so schlechter, je mehr Daten (sprich:
wenn mehr als eine textenthaltende Spalte) vorhanden sind, nach denen
sortiert werden könnte.

Im schlimmsten Fall (je nach Wichtigkeit der Applikation und ggf. auch
Spendierfreudigkeit des Benutzers) könnte man 'nen kleinen Proxy
dazwischenbauen, der die Statements entsprechend umbaut.

MfG, JBG

-- 
      Jan-Benedict Glaw      jbglaw at lug-owl.de              +49-172-7608481
Signature of:              Alles sollte so einfach wie möglich gemacht sein.
the second  :                          Aber nicht einfacher.  (Einstein)
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 197 bytes
Beschreibung: Digital signature
URL         : http://www.tlug.de/pipermail/tlug_allgemein/attachments/20091103/30be19d8/attachment.pgp