2011-08-25 2 views
4

형식 캐스팅을 수행하기 위해 postgresql에서 사용하는 함수를 결정하는 방법은 무엇입니까?형식 캐스팅을 수행하기 위해 postgresql에서 사용하는 함수를 찾는 방법은 무엇입니까?

EG : SELECT '{1,2,3}':: int4 []가있는 경우 postgresql이 어떤 기능을 사용하여 캐스팅을 수행하는지 어떻게 결정합니까? psql에서 \ dC를 수행하면 대상 데이터 유형이 int4 [] 인 캐스트가 나열되지 않는 것 같습니다.

답변

3

완전히 엘리트 방법은 SET debug_print_parse TO on; 또는 SET debug_print_plan TO on;을 수행 한 다음 서버 로그에서 구문 분석 또는 계획 트리를보고 기능이 종료 될 때까지 기다리는 것입니다.

이 예제에서는 쓴 내용이 실제로 캐스트가 아니며 '{1,2,3}' 문자열을 int4[] 유형 입력 기능에 제공한다는 것을 알 수 있습니다. 바이너리 호환 유형 또는 I/O 기능을 통한 강제 변환과 같은 캐스트 기능이 호출되지 않는 다른 시나리오가 있습니다.

1

캐스트는 시스템 테이블 pg_casts에 저장됩니다. 온라인 문서를 통해 추적 할 수 있습니다. pg_proc 유망 보인다.

소스 코드를 읽어야 할 경우 pg_cast.h으로 시작하십시오.

관련 문제