database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Q&A 5752 게시물 읽기
No. 5752
pgsql 윈도우버전의 문자열 버그인것 같은데요?
작성자
sauron
작성일
2004-12-23 19:44ⓒ
2004-12-23 20:17ⓜ
조회수
2,213

저는 pgsql 을 윈도우에서 쓰고자 하는 초보입니다.

window 8.0 베타5 를 다운받고 깔았습니다.

정확한 설치환경은 이렇습니다.

 

version : PostgreSQL 8.0.0beta5 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.3.1 (mingw special 20030804-1)
OS : Window server 2004 Enterprise

DB 설치시에 문자셋 : euc_kr

 

그리고 나서 세 개의 데이타베이스를 생성했는데

각각의 문사셋을 EUC_KR, UNICODE, SQL_ASCII 로 하였습니다.

그리고 나서 각각의 DB 에서 아래의 쿼리를 실행한 결과

 

select
chr(10)<chr(11) AS A1,
chr(11)<chr(12) AS A2,
chr(12)<chr(13) AS A3,
chr(13)<chr(14) AS A4,
chr(14)<chr(15) AS A5,
chr(15)<chr(16) AS A6,
chr(16)<chr(17) AS A7;

 

그런데 세 개의 DB 에서 결과가

a1 | a2 | a3 | a4 | a5 | a6 | a7
----+----+----+----+----+----+----
t | t | t | f | t | t | t
(1 row)

 

이렇게 나옵니다. 놀랍게도 a3 필드가 false 가 나온다는 것이죠

혹시 설치를 잘못해서 거런 것일까요.

이런 현상은 window pgsql beta4 에서도 같았습니다.

이것은 어떻게 된 것일까요 pgsql 측에 메일을 보냈더나

자기 PC 에서는 이상없다며 로케일 설정을 다시 살펴보라고 하더군요.

 

이런 현상은 무엇때문인에 일어나는 것일까요.

window 에서 pgsql 을 쓰시는 분은 모두 이런 현상을 겪지 않으십니까.

이 글에 대한 댓글이 총 2건 있습니다.
Welcome to psql 8.0.0rc2, the PostgreSQL interactive terminal.
사용법:  \copyright 저작권 정보
         \h SQL 명령어 도움말
         \? 내장 명령어 도움말
         \g 또는 명령 끝에 ; 쿼리 실행
         \q 마침
template1=# select
template1-# chr(10)<chr(11) AS A1,
template1-# chr(11)<chr(12) AS A2,
template1-# chr(12)<chr(13) AS A3,
template1-# chr(13)<chr(14) AS A4,
template1-# chr(14)<chr(15) AS A5,
template1-# chr(15)<chr(16) AS A6,
template1-# chr(16)<chr(17) AS A7;
 a1 | a2 | a3 | a4 | a5 | a6 | a7
----+----+----+----+----+----+----
 t  | t  | t  | t  | t  | t  | t
(1건 있음)
template1=#
template1=# \c mydb
"mydb" 데이터베이스로 접속했습니다.
mydb=# select
mydb-# chr(10)<chr(11) AS A1,
mydb-# chr(11)<chr(12) AS A2,
mydb-# chr(12)<chr(13) AS A3,
mydb-# chr(13)<chr(14) AS A4,
mydb-# chr(14)<chr(15) AS A5,
mydb-# chr(15)<chr(16) AS A6,
mydb-# chr(16)<chr(17) AS A7;
 a1 | a2 | a3 | a4 | a5 | a6 | a7
----+----+----+----+----+----+----
 t  | t  | t  | t  | t  | t  | t
(1건 있음)

 

 

보시다시피 rc2 버전에는 문제가 없습니다. 저 문제는 collate 관련 문제거든요. 이것은 initdb 명령을 처음 실행할 때 한국어일 경우, --lc-collate=c 형태, 또는 --no-locale 옵션으로 데이터베이스 클러스터를 만들었느냐에 달려있습니다. 이것은 pg_controldata 명령으로 확인해 보실 수 있습니다.

 

아무튼 현재 rc2 버전에는 별 문제 없이 돌아가네요.

윗 결과에서 template1 의 데이터베이스 문자셋은 sql_ascii, mydb 는 unicode 입니다.

 

김상기(ioseph)님이 2004-12-23 20:07에 작성한 댓글입니다.

이런 문제들이 있을 것 같아서,

http://database.sarang.net/?inc=read&aid=5748&criteria=pgsql&subcrit=news&id=&limit=20&keyword=&page=1

문서에서 장황하게 이야기하고 있습니다.

 

현재, 8.0 버전에서 아무 생각없이 그냥 주의를 안 기우리고 사용하게 되면, 한국어 관련에서 문제가 종종 발생합니다.

 

이런 것들에 대한 한국어 사용자로써 공식 입장입니다.

 

참고하세요. 문제는 m$ 동네든, 유닉스 동네든 한국어대한 LC_COLLATE 관련 처리들이 PostgreSQL 쪽에서 그리 깔끔하게 움직이지 않습니다. 이 문제는 고질적입니다. 이 부분은 우리나라 사람이 해결책을 알려주어야하는데, 그럴 만한 사람이 현재 없습니다.

 

김상기(ioseph)님이 2004-12-23 20:12에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
5758서브쿼리 질문 입니다. [1]
장철훈
2004-12-24
2322
5757Win32 환경에서 Add server 시에, 접속이 안될때.. [1]
권진호
2004-12-24
2747
5753김상기님에 대한 sauron 의 감사글 -- pgsql 윈도우버전의 문자열 버그 ...
sauront
2004-12-23
2045
5752pgsql 윈도우버전의 문자열 버그인것 같은데요? [2]
sauron
2004-12-23
2213
5751윈도우 강제 종류이후에 서비스가 올라 오지 않습니다. [2]
남경수
2004-12-23
2144
5750바뀐 PostgreSQL 8.0 문자셋, 정렬, 인덱스 사항들
김상기
2004-12-23
2308
5749Windows 2000에서 postgresql-8.0.0-rc1.msi 설치시 오류가 나네요. ㅠ_ㅠ;; [2]
권진호
2004-12-23
2246
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.036초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다