> 밑의 글중 저와 같은 경우가 있더군요.
> 아래의 글이 그 내용인데 답변을 해주신 분이 한글패치를 하라고
> 하였습니다만, 저 같은 경우는 알짜판의 postgres를 사용하기 때문에
>
> 해결이 되지 않는 경우이더군요.
>
> 아무쪼록 자세히 살펴보시고 해결방안을 주시면 감사하겠습니다.
알겠습니다. 해결방안을 한번 찾아 보도록 하지요.
> 저두 역시 같은 경우를 당했습니다.
> 밑의 답변을 보면 6.3.2이상(?)은 괜찮다고 했는데...
> 저같은 경우는 RedHat 6.0 postgres 6.4.2/3kr(rpm)과
> Redhat 6.1 postgres 6.5.2/1kr (rpm)에서도 같은 경우가
> 발생했습니다.
>
도저히 이해할 수 없는 현상이지만 (하지만 있을수 있는 현상이라는 생각은 드는군요.) 하여튼 문제해결을 위해서는 직접 컴파일하여 설치하는 수 밖에 없을 것 같습니다. 그것이 가장 확실한 방법인 듯 합니다.
사실 multi/byte 문화권에서 가장 고충을 겪는 문제가 바로 문자코드 문제입니다. 특히 DBMS의 경우 이 문제는 심각하다고 생각할 수 있습니다. 다행히 PostgreSQL 의 경우 자료의 문자코드에 영향을 미치는 컴파일시의 옵션은 두가지 밖에 없어 간단하다고 볼 수 있습니다.
1. //with/mb=EUC_KR
이것은 multi/byte 패치 적용시 문자코드를 EUC_KR 에 맞추어
주라는 옵션입니다. 이것 만으로도 정상적으로는 한글소팅이
잘 되어야 합니다.
2. //enable/locale
이것은 사실 문자의 소팅에 영향을 미친다기 보다는 주로 출력
함수쪽에 영향을 미치는 옵션입니다. 하지만 PostgreSQL의 경우
소팅에도 영향을 미치는 것 같습니다.
이 옵션을 줄 경우 한글 한자의 크기를 1로 계산하게 되더군요.
이제 이 두가지 옵션을 적용시켜서 컴파일해 보시기 바랍니다.
1 번 옵션은 필히 포함되어야겠지요.
2 번 옵션의 적용 여부가 문제가 됩니다. 6.5.1의 경우 1,2번 옵션을
같이 줄 경우 한글 소팅이 안된다고 하시는 분들이 많더군요.
하지만 개인적으로는 1번 옵션만 적용시켜도 안되더군요. 이걸로 봐서는 6.5.1의 경우 multibyte 패치 자체에 문제가 있었던 것으로 생각됩니다.
6.5.2 부터는 정상적으로 작동을 합니다. 그러므로 개인적으로는 1번 옵션만 주어서 컴파일한 후 사용해 보시길 권장 드립니다. 현재 그렇게 사용중인데 전혀 문제없이 잘되고 있습니다.
(디비 패키징 하시는 분들이 별로 테스트를 해 보지 않고 하기 때문에 이런 문제가 생기는 것 같습니다. 원래 오리지널 레뎃 패키지를 사용하는 분들은 파란눈이 더 많을 테니 이런 걱정 않고 살겠지요.
참고로 아래는 개인적으로 PostgreSQL 컴파일시 주었던 옵션들을 적어 둔것입니다../configure \
//prefix=/usr/local/pgsql \
/sysconfdir=/usr/local/pgsql/conf \
//enable/recode \
//with/mb=EUC_KR \
//with/maxbackends=64 \
//with/tcl \
//with/tclconfig=/usr/lib \
//with/tkconfig=/usr/lib \
//with/perl \
//with/odbc \
//with/odbcinst=/usr/local/pgsql/odbc \
//enable/cassert \
//with/x
|