이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 31.2. 토토 사이트 순위 평가버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

14.3. 토토 사이트 평가

일부는 올바르게 설치되고 완전히 작동합니다PostgreSQL설치 CAN"실패"이러한 회귀 토토 사이트 중 일부는 그로 인해 발생합니다 다양한 부동 소수점과 같은 플랫폼 별 아티팩트 표현 및 시간대 지원. 토토 사이트는 현재입니다 간단한 사용diff참조 시스템에서 생성 된 출력과 비교, 따라서 결과는 작은 시스템 차이에 민감합니다. 언제 a 토토 사이트는로보고됩니다."실패", 항상 예상 결과와 실제 결과의 차이점을 조사하십시오. 너 차이가 중요하지 않다는 것을 알 수 있습니다. 그럼에도 불구하고, 우리는 여전히 정확한 참조 파일을 유지하기 위해 노력하고 있습니다 지원되는 모든 플랫폼에서 토토 사이트 패스.

회귀 토토 사이트의 실제 출력은 파일에 있습니다SRC/TEST/Regress/Results디렉토리. 그만큼 토토 사이트 스크립트 사용diff비교 에 저장된 참조 출력에 대한 각 출력 파일src/test/regress/expect디렉토리. 검사를 위해 차이가 저장됩니다.src/test/regress/regression.diffs. (또는 할 수 있습니다 달리다diff당신이라면 선호하다.)

14.3.1. 오류 메시지 차이

일부 회귀 토토 사이트 중 일부는 의도적으로 무효가 포함됩니다 입력 값. 오류 메시지는에서 나올 수 있습니다.PostgreSQL코드 또는 호스트 플랫폼 시스템 루틴. 후자의 경우 메시지 플랫폼마다 다를 수 있지만 비슷한 반영을 반영해야합니다 정보. 이러한 메시지의 차이로 인해 A가 발생합니다."실패"회귀 토토 사이트 검사로 검증.

14.3.2. 로케일 차이

토토 사이트는 평범하게 실행될 것으로 예상"C"로케일. 이것은 문제를 일으키지 않아야합니다 임시 설치에 대해 토토 사이트를 실행할 때 회귀 토토 사이트 드라이버는 C에서 서버를 시작하기 위해주의를 기울입니다. 장소. 그러나 토토 사이트를 실행하는 경우 비 C 로케일 설정을 사용하는 이미 설치된 서버, 문자열 정렬에 대한 다양한 규칙으로 인한 차이점이 표시 될 수 있습니다. 주문, 숫자 및 금전적 값의 형식 등 앞으로.

일부 지역에서는 그 결과 차이가 작고 검사에 의해 쉽게 확인됩니다. 그러나 로케일에서 변경됩니다 숫자 값의 서식 규칙 (일반적으로 쉼표와 소수점의 사용량을 교환), 일부의 진입 데이터 값이 실패하여 나중에 광범위한 차이가 발생합니다 누락 된 데이터 값이있는 토토 사이트에서 사용된.

14.3.3. 날짜 그리고 시간 차이

쿼리 중 일부는타임 스탬프토토 사이트를 실행하면 토토 사이트가 실패합니다 일광 절약 시간 전환 또는 전날 또는 하나 후. 이 쿼리는 간격이 있다고 가정합니다 어제 자정, 오늘 자정, 내일 자정입니다 정확히 24 시간-일광 절약이면 잘못입니다 한편 시간은 효과적이거나 효과가 없었다.

대부분의 날짜와 시간 결과는 시간에 따라 다릅니다. 구역 환경. 참조 파일은 시간 동안 생성됩니다 존pst8pdt(캘리포니아 버클리) 토토 사이트가 실행되지 않으면 명백한 실패가있을 것입니다. 해당 시간대 설정으로. 회귀 토토 사이트 드라이버 세트 환경 변수pgtztopst8pdt, 일반적으로 적절한 결과를 보장합니다. 그러나 귀하의 시스템은에 대한 라이브러리 지원을 제공해야합니다.pst8pdt시간대 또는 시간 영역 의존성 토토 사이트가 실패합니다. 기계를 확인합니다 이 지원이 있습니다. 다음을 입력하십시오.

$ENV TZ = PST8PDT 날짜

위의 명령은 현재 시스템을 반환해야합니다 에서의 시간pst8pdt시간대. 인 경우pst8pdt데이터베이스를 사용할 수 없습니다. 그러면 시스템이 GMT에서 시간을 반환했을 수 있습니다. 인 경우pst8pdt시간대를 사용할 수 없습니다. 시간대 규칙을 명시 적으로 설정할 수 있습니다.

pgtz = 'pst8pdt7, m04.01.0, m10.05.03'; 수출 pgtz

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

이전 시간대 라이브러리를 사용하는 일부 시스템은 적용되지 않습니다. 1970 년 이전 날짜에 대한 일광 절약 수정으로 인해 발생합니다 1970 년 이전PDT시간이 될 것입니다 표시PST대신. 이로 인해 토토 사이트에서 국소화 된 차이가 발생합니다 결과.

14.3.4. 부동 소수점 차이

일부 토토 사이트에는 64 비트 ( 계산이 포함됩니다.이중 정밀도) 표 열에서 숫자. 수학적 기능과 관련된 결과의 차이이중 정밀열이 있습니다 관찰되었습니다. Float8 및 Geometry 토토 사이트는 특히 발생하기 쉽습니다 플랫폼에서 또는 다른 차이에 대한 작은 차이 컴파일러 최적화 옵션. 인간 안구 비교입니다 이러한 차이의 실제 중요성을 결정해야합니다 보통 10 진수 오른쪽에있는 10 곳입니다. 가리키다.

일부 시스템 신호 오류pow ()andexp ()전류가 기대하는 메커니즘과 다르게PostgreSQL코드.

14.3.5. 다각형 차이

여러 토토 사이트에는 지리적 데이터에 대한 작업이 포함됩니다 오클랜드/버클리, 캘리포니아 거리지도에 대해. 지도 데이터 정점이 표시되는 다각형으로 표현됩니다 쌍이중 정밀숫자 (10 진수 위도 및 경도). 처음에는 일부 테이블이 있습니다 지리적 데이터로 생성되고로드 된 다음 일부보기는 다음과 같습니다. 다각형 교차로를 사용하여 두 개의 테이블에 합류 한 생성되었습니다 연산자 (##), 선택이 완료됩니다 보기에.

다른 플랫폼의 결과를 비교할 때 차이는 2 위 또는 3 위에 오른쪽에 있습니다. 콤마. 이러한 문제가 발생하는 SQL 문 다음은 다음과 같습니다.

select * From Street;
선택 *에서 IEXIT; 선택

17799_17837

동일한 행이 출력되는 차이점이 표시 될 수 있습니다. 예상 파일에 나타나는 것과는 다른 순서로 ~ 안에 대부분의 경우 이것은 엄밀히 말해서 버그가 아닙니다. 대부분의 회귀 토토 사이트 스크립트는 주문을 사용하는 것만 큼 성가신 일이 아닙니다. 단일 선택마다, 결과 행 순서가 순서대로 SQL의 편지에 따라 잘 정의되어 있지 않습니다. 사양. 실제로, 우리는 똑같이보고 있기 때문에 동일한 소프트웨어로 동일한 데이터에서 실행되는 쿼리 우리는 일반적으로 모든 플랫폼에서 동일한 결과 순서를 받고 따라서 질서 부족은 문제가되지 않습니다. 일부 쿼리가 있습니다 그러나 교차 플랫폼 순서 차이를 나타냅니다. (주문 비 C 로케일에 의해 차이를 유발할 수도 있습니다 설정.)

따라서 순서 차이가 표시되면 그렇지 않습니다 쿼리에 주문이 없다면 걱정할 것이 있습니다. 그로 인해 당신의 결과는 위반됩니다. 하지만 어쨌든보고 해주세요. 특정 쿼리에 주문을 추가하고 따라서 가짜 제거"실패"향후 릴리스

왜 우리가 모든 회귀 토토 사이트를 주문하지 않는지 궁금 할 것입니다. 이 문제를 한 번에 제거하기 위해 명시 적으로 쿼리합니다. 그 이유는 회귀 토토 사이트가 덜 만들어지기 때문입니다. 쿼리 계획을 행사하는 경향이 있기 때문에 유용하지 않습니다. 그것들을 제외하기 위해 순서대로 결과를 생성하는 유형 그렇지 않습니다.

14.3.7. 그만큼"Random"토토 사이트

에 적어도 하나의 사례가 있습니다"Random"생산하려는 토토 사이트 스크립트 무작위 결과. 이로 인해 회귀 토토 사이트가 실패하게됩니다 가끔 (아마도 5-10 개의 시험마다 한 번). 타자

diff results/random.out random.out/random.out

는 하나 또는 몇 줄의 차이 만 생성해야합니다. 너 임의의 토토 사이트가 항상 반복되는 경우 걱정할 필요가 없습니다. 시도. (반면에 임의의 토토 사이트가절대보고 회귀 토토 사이트의 많은 시험에서도 실패하면 아마도해야 할걱정.)