> OK, I've been spreading rumours about fixing the internationalization > problems, so let me make it a bit more clear. Here are the problems that > need to be fixed: > > - Only one locale per process possible. > > - Only one gettext-language per process possible. > > - lc_collate and lc_ctype need to be held fixed in the entire cluster. > > - Gettext relies on iconv character set conversion, which relies on > lc_ctype, which leads to a complete screw-up in the server because of > the previous item. > > - Locale fixed per cluster, but encoding fixed per database, unware > of each other, don't get along. > > - No support for upper/lower with multibyte encoding. > > - Implementation of Unicode horribly incomplete. > > These are all dependent on each other and sort of flow into each other. > > Here is a proposed ordering of steps toward improving the situation: > > 1. Take out the character set conversion routines from the backend and > make them a library of their own. This could possibly be modelled after > iconv, but not necessarily. Or we might conclude that we can just use > iconv in the first place.
How do you handle user-defined conversions? > 2. Reimplement gettext to use 1. and allow switching of language and > encoding at run-time. > > 3. Implement Unicode collation algorithm and character classification > routines that are aware of 1. Use that in place of system locale > routines. I don't see a relationship between Unicode and the one you are going to replace the system locale routines. If you are going to the direction for an "Unicode central" implementation, I will object. > 4. Allow choice of locale per database. (This should be fairly easy after > 3.) > > 5. Allow choice of locale per column and implement collation coercion > according to SQL standard. > > This could easily take a long time, but I feel that even if we have to > stop after 2., 3., or 4. at feature freeze, we'd be a lot farther. > > Comments? Anything else that needs fixing? > > -- > Peter Eisentraut [EMAIL PROTECTED] > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org > ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html