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

젠 토토 분석

결과는 ./Results 디렉토리의 파일에 있습니다. 이것들 결과는 ./expected 디렉토리의 결과와 비교할 수 있습니다. 'diff'사용. (테스트 스크립트는이 작업을 수행하고 ./regression.diffs의 차이점)

파일이 정확히 비교되지 않을 수 있습니다. 테스트 스크립트가보고됩니다 "실패"와 같은 차이이지만 차이는 오류 메시지 문구, 수학의 작은 시스템 차이 도서관 행동 등이 유형의 "실패"는 문제Postgres.

따라서 각각의 실제 차이점을 조사해야합니다. 실제로 문제가 있는지 여부를 결정하기 위해 "실패"테스트. 그만큼 다음 단락은 몇 가지 지침을 제공하려고 시도합니다 차이가 중요한지 아닌지 결정.

오류 메시지 차이

일부 회귀 테스트에는 의도적 인 유효하지 않은 입력이 포함됩니다 값. 오류 메시지는 Postgres 코드 또는 호스트 플랫폼 시스템 루틴에서. 후자의 경우 메시지는 플랫폼마다 다를 수 있지만 유사하게 반영해야합니다 정보. 이러한 메시지의 차이로 인해 a 검사에 의해 검증 될 수있는 "실패"회귀 테스트.

OID 차이

Postgresql OID (Object 식별자)는 'regress.out'에 나타납니다. OID는 독특한 32 비트입니다 postgresql 백엔드에 의해 생성되는 정수 테이블 행이 삽입되거나 업데이트됩니다. 회귀 테스트를 실행하는 경우 Virgin이 아닌 데이터베이스 또는 여러 번 실행 한 OID는보고되었습니다. 값이 다릅니다. 다음 SQL 문의 'misc.out'은 다음 행동을 보여주었습니다. 쿼리 : user_relns ()를 선택하십시오 user_relns의 user_relns 주문; 'A, 523676'행은 구성됩니다 오이드.

날짜와 시간 차이

대부분의 날짜 및 시간 결과는 시간대에 따라 다릅니다. 환경. 기준 파일은 TimeZone PST8PDT에 대해 생성됩니다 (캘리포니아 버클리) 그리고 테스트는 해당 시간대 설정으로 실행되지 않습니다. 젠 토토 테스트 드라이버는 환경 변수 PGTZ를 PST8PDT로 설정하여 올바른 것을 보장합니다. 결과.

수용하지 않는 일부 시스템이있는 것으로 보입니다. 현지 시간대를 명시 적으로 설정하기위한 권장 구문 규칙; 그러한 경우 다른 PGTZ 설정을 사용해야 할 수도 있습니다. 기계.

이전 시간대 라이브러리를 사용하는 일부 시스템은 적용되지 않습니다 1970 년 이전 날짜에 대한 일광 절약 수정, 1970 년 이전 대신 PST에 표시되는 PDT 시간. 결과가 발생합니다 테스트 결과의 현지화 된 차이.

플로팅 포인트 차이

일부 테스트에는 64 비트 ( 계산이 포함됩니다.float8) 표 열에서 숫자. 차이 수학적 함수와 관련된 결과float8열이 관찰되었습니다. float8 및 형상 테스트는 특히 작은 차이가 발생하기 쉽습니다 플랫폼. 실제를 결정하려면 인간 안구 비교가 필요합니다 일반적으로 10 장소 인 이러한 차이의 중요성 소수점의 권리.

일부 시스템은 pow () 및 exp ()의 오류 신호 오류와 다르게 현재 Postgres 코드가 기대하는 메커니즘.

다각형 차이

몇 가지 테스트는 지리적 날짜에 대한 작업과 관련이 있습니다. 오클랜드/버클리 CA 거리지도. 맵 데이터는 다음과 같이 표현됩니다 정점이 쌍의 쌍으로 표현되는 다각형float8숫자 (소수점 위도 및 경도). 처음에는 일부 테이블이 생성되고 지리적 데이터로로드됩니다. 그런 다음 다각형을 사용하여 두 테이블에 합류하는 일부보기가 생성됩니다. 교차로 연산자 (##), 뷰에서 선택이 수행됩니다. 언제 다른 플랫폼의 결과를 비교하면 차이가 발생합니다 소수점의 오른쪽으로 2 위 또는 3 위. SQL 이러한 문제가 발생하는 진술은 다음과 같습니다.

쿼리 : select * from street;
          쿼리 : 선택 *에서 IEXIT;

무작위 차이

Random.out에는 적어도 하나의 테스트 사례가 있습니다. 무작위 결과를 생성합니다. 이것은 무작위가 실패하게합니다 젠 토토 테스트 한 번 가끔. 타자

diff results/random.out random.out/random.out
이 이유는 이런 이유로 다른 부동 소수점 차이는 비슷합니다 아키텍처는 더 많은 차이를 유발할 수 있습니다. 릴리스를 참조하십시오 아래 참고 사항.

"예상" 파일

the./expected/*. out파일이있었습니다 원래 모 놀리 식에서 적응exporct.inputJolly Chen et al. 이러한 파일의 최신 버전은 다양한 개발에서 생성되었습니다 신중한 (?) 검사 후 기계를 대체했습니다. 많은 개발 기계의 UNIX OS 변형 (FreeBSD, ix86 하드웨어의 Linux 등). 원래exporct.input파일은 Sparc Solaris에서 생성되었습니다 2.4 사용 시스템Postgres5-1.02a5.tar.gz소스 트리. 그랬어요 i386 Solaris 2.4 시스템 및 차이는 3 번째 부동 소수점 다각형에만 있었다. 소수점의 오른쪽에있는 숫자. (아래 참조) 원본sample.regress.out파일에서 나왔습니다 Postgres-1.01 Jolly Chen이 제작 한 릴리스 및 포함되어 있습니다 참조를 위해. DEC 알파 머신에서 만들어 졌을 수도 있습니다. 로makefile.globalPostgres-1.01 릴리스는 PortName = alpha입니다.