Escrito por Oleg Bartunov. Ver Oleg's web page para más información sobre el soporte de lengua local y Rusa. |
La gente a veces se queja que el soporte local no funciona para ellos. Hay algunos errores comunes:
No configurar debidamente postgresql antes de compilarlo. Tu debes ejecutar la configuración con la opción --enable-locale para activar el soporte local. No iniciar el entorno correctamente cuando se inicia postmaster. Tu debes definir las variables de entorno LC_CTYPE and LC_COLLATE antes de ejecutar postmaster porque por detrás coge información local del entorno. Yo uso el siguiente shell script (runpostgres):
#!/bin/sh export LC_CTYPE=koi8-r export LC_COLLATE=koi8-r postmaster -B 1024 -S -D/usr/local/pgsql/data/ -o '-Fe' |
/bin/su - postgres -c "/home/postgres/runpostgres" |
Un soporte local estropeado en un OS (por ejemplo, el soporte local en libc bajo Linux algunas veces ha sido cambiado y esto ha causado muchos problemas) El más reciente perl tiene también soporte local y si el soporte local es defectuoso perl -v da un aviso parecido a esto:
8:17[mira]:~/WWW/postgres>setenv LC_CTYPE not_exist 8:18[mira]:~/WWW/postgres>perl -v perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = (unset), LC_CTYPE = "not_exist", LANG = (unset) are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). |
Localización errónea de los ficheros locales! Las posibles localizaciones son: /usr/lib/locale (Linux, Solaris), /usr/share/locale (Linux), /usr/lib/nls/loc (DUX 4.0). Chequea man locale para encontrar la localización correcta. Bajo Linux yo hice un enlace simbólico entre /usr/lib/locale y /usr/share/locale para estar seguro que la próxima libc no estropea mi soporte local.
Tu puedes usar ~* y el operador order by para cadenas que contienen caracteres de alfabetos nacionales. Los usuarios no Ingleses definitivamente lo necesitan. Si tu no quieres usar el soporte local libera la variable USE_LOCALE.
Hay una evidente desventaja si utilizamos el soporte local - que el la velocidad! Por eso, utilízalo sólo si verdaderamente lo necesitas.