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

스포츠 토토 분석

스포츠 토토 테스트의 실제 출력은 파일에 있습니다./results디렉토리. 테스트 스크립트 사용diff각 출력 파일을 비교합니다 에 저장된 참조 출력에 대해./expected디렉토리. 모든 차이점은 저장됩니다 검사에서./regression.diffs. (또는 실행할 수 있습니다diff자신, IF 당신은 선호합니다.)

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

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

오류 메시지 차이

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

날짜와 시간 차이

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

"타임 스탬프"테스트의 일부 쿼리가 실행되면 실패합니다. 일광 절약 시간 전환 당일 또는 전후에. 이 쿼리는 간격을 가정합니다 어제 자정, 오늘 자정, 내일 자정 사이 정확히 24 시간입니다 일광 절약 시간은 시간이 걸렸거나 효과가 없어졌습니다.

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

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

플로팅 포인트 차이

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

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

다각형 차이

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

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

무작위 차이

"랜덤"테스트 스크립트에는 적어도 하나의 사례가 있습니다. 무작위 결과를 생성하기위한 것입니다. 이것은 무작위가 실패하게합니다 가끔 스포츠 토토 테스트 (아마도 5-10마다 한 번 시험). 타자

diff results/random.out random.out/random.out
는 하나 또는 몇 줄의 차이 만 생성해야합니다. 너 임의의 테스트가 항상 반복되는 경우 걱정할 필요가 없습니다. 시도. (반면에 임의의 테스트가절대많은 시험에서도 실패한 것으로보고되었습니다 스포츠 토토 테스트, 아마도해야 할걱정.)

"예상" 파일

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