이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다현재버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

로케일 지원하다

참고 :Oleg Bartunov에 의해 작성되었습니다. 보다Oleg 's 웹 페이지로케일 및 러시아어에 대한 추가 정보 언어 지원.

러시아 모스크바에있는 회사를위한 프로젝트를 수행하는 동안 Postgresql이 지원하지 않았다는 문제가 발생했습니다. 국가 알파벳. 가능한 해결 방법을 찾은 후 i 로케일에 대한 지원을 개발하기로 결정했습니다. 나는 C 프로그램이 아닙니다 하지만 내가 일할 때 이미 로케일 프로그래밍에 대한 경험이 이미있었습니다. Perl (디버깅) 및 엿보기. 며칠 동안 파기 한 후 를 통해Postgres소스 트리 i src/backend/utils/adt/varlena.c에 아주 작은 코어를 만들었습니다 src/backend/main/main.c와 내가 필요한 것을 얻었습니다! 나는 단지 지원했다 을 위한LC_CTYPEandLC_COLLATE그러나 나중에lc_monetary다른 사람들이 추가했습니다. 많은 메시지를 받았습니다 이 패치에 대해 사람들로부터 개발자에게 보내기로 결정했습니다. 그리고 (놀랍게도) 그것은에 통합되었습니다.Postgres배포.

사람들은 종종 와이즈 토토이 그들에게 효과가 없다고 불평합니다. 거기 몇 가지 일반적인 실수입니다 :

  • 컴파일 전에 PostgreSQL을 제대로 구성하지 않았습니다. 너 로케일을 활성화하려면 -enable-locale 옵션으로 구성을 실행해야합니다 지원하다. 시작할 때 환경을 올바르게 설정하지 않았습니다 우체국 장. 환경 변수를 정의해야합니다LC_CTYPEandLC_COLLATE백엔드가 정보를 얻기 때문에 Postmaster를 실행하기 전에 환경의 로케일에 대해. 다음 쉘 스크립트를 사용합니다 (runpostgres) :

    #!/bin/sh
    
           내보내기 lc_ctype = koi8-r
           내보내기 LC_COLLATE = KOI8-R
           Postmaster -B 1024 -s -d/usr/local/pgsql/data/-o '-fe'
    rc.local as에서 실행하십시오.
    /bin/su -postgres -c "/home/postgres/runpostgres"
  • OS에서의 로케일이 부러진 (예 : 로케일 지원 Linux에서 LIBC가 여러 번 변경되었으며 이로 인해 많은 문제). 최신 Perl은 Locale 및 IF를 지원했습니다 로케일이 깨졌다Perl -v불평합니다 다음과 같은 것 :

    8 : 17 [mira] : ~/www/postgres setenv lc_ctype not_exist
           8:18[mira]:~/WWW/postgresperl -v
           Perl : 경고 : 로케일 설정에 실패했습니다.
           Perl : 경고 : 로케일 설정을 확인하십시오.
           lc_all = (unset),
               lc_ctype = "not_exist",
               lang = (unset)
           시스템에 지원 및 설치됩니다.
           Perl : 경고 : 표준 로케일 ( "C")로 돌아 가기.
  • 로케일 파일의 잘못된 위치! 가능한 위치에는 다음이 포함됩니다./usr/lib/locale(Linux, Solaris),/usr/share/locale(Linux),/usr/lib/nls/loc(Dux 4.0). 확인하다Man Locale올바른 위치를 찾으려면. 아래에 Linux 나는 사이에 상징적 링크를 수행했습니다/usr/lib/localeand/usr/share/locale다음 libc를 확인하십시오 내 로케일을 깨뜨리지 않을 것입니다.

이익?

당신은 ~*를 사용할 수 있으며 문자열이 포함 된 연산자의 주문 National Alphabets의 캐릭터. 영어 이외의 사용자는 확실히 필요합니다. 와이즈 토토 물건을 사용하지 않으면 정의되지 않습니다 use_locale 변수.

단점?

와이즈 토토 사용에 대한 분명한 단점 - 속도! 그래서, 정말로 필요한 경우에만 와이즈 토토을 사용하십시오.