:: 쩝... 그 요상스런 케스트를 알게 된것이 (실수 % (실수 10.0 / 정수 2)) 식의
:: 연산을 하던중에 알게 되었습니다. 에러났습니다.
:: 즉, 소수점 밑에 0이 떨어저 나간것이 아니라 실재로 정수값이 리턴되어
:: 오더라는 거죠...
create table ... as 구문으로 만들어진 자료형을 살펴보실 수 있습니다.
윗 부분이라면, 실수 % 실수 형태로 정상 값을 던져줍니다.
당연히 실수 나수기 정수를 하면 정밀도가 높은 실수로 형변환을 해서,
실수로 던져주어야겠지요. PostgreSQL에서도 그것은 예외가 아닙니다.
select 10.0 / 2 에서 5 를 달랑 던져주는 것이 정수로 취는 되는 것이
아니라 실수로 처리되어집니다.
# create table aa as select 10.0 / 2;
SELECT
# \d aa
Table "aa"
Attribute | Type | Modifier
///////////+//////////////////+//////////
?column? | double precision |
::
:: 제 생각에 문제는 우회도로가 아니라 일관성의 부제라고 생각됩니다.
:: 또한 모든 연산에서 정밀도가 높은 쪽으로 캐스트 되어 결과값이 나오는것이 옳은
:: 방법이라고 색각합니다만... 전반적으로 정밀도가 낮은 쪽으로 옮겨가더군요.
:: 또한 연산식에 따라서 에러가 나는 경우도 있고 그렇지 않은 것도 있는것은
:: 사용자들에게(나와 같은?) 혼란을 주게 될테니깐요.
:: 6.X대 버전을 한번 설치해서 그쪽에서도 있었던 문제인지 알아보려고 합니다만...
:: 시험은 7.1.1에서 해서요.
:: 일관성의 부제라는 것은 postgresql.org에 알려야하지 않을까요?
:: (저 영어 못해요... 쩌업...)
::
::
:: 인천의 나사 풀린 산호...
|