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

28.2. 토토 결과 평가

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

회귀 토토 결과의 실제 출력은 파일에 있습니다src/test/regess/results디렉토리. 그만큼 토토 결과 스크립트 사용diff각각을 비교합니다 에 저장된 참조 출력에 대한 출력 파일src/test/regress/expect디렉토리. 검사를 위해 차이가 저장됩니다.src/test/regress/regression.diffs. (또는 할 수 있습니다 달리다diff자신, 원하는 경우)

어떤 이유로 든 특정 플랫폼이 a를 생성합니다."실패"주어진 토토 결과의 경우 출력 검사 결과 결과가 유효하다고 확신합니다. 실패 보고서를 침묵시키기 위해 새 비교 파일을 추가 할 수 있습니다. 향후 토토 결과에서 실행됩니다. 보다PostgreSQL : 문서 : 8.2 : 변형 비교 사설 토토 사이트자세한 내용.

28.2.1. 오류 메시지 차이

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

28.2.2. 로케일 차이

이미 설치된 서버에 대해 토토 결과를 실행하는 경우 그것은 다른 통합 주문 로케일로 초기화되었습니다 C, 정렬 순서로 인해 차이가있을 수 있습니다. 후속 실패. 회귀 토토 결과 스위트가 설정되었습니다 대체 결과 파일을 제공 하여이 문제를 처리하십시오 함께 많은 지역을 처리하는 것으로 알려져 있습니다.

28.2.3. 날짜 그리고 시간 차이

대부분의 날짜와 시간 결과는 시간에 따라 다릅니다. 구역 환경. 참조 파일은 시간 동안 생성됩니다 존pst8pdt(캘리포니아 버클리), 토토 결과가 실행되지 않으면 명백한 실패가있을 것입니다. 해당 시간대 설정으로. 회귀 토토 결과 드라이버 세트 환경 변수pgtztopst8pdt, 일반적으로 적절합니다 결과.

28.2.4. 부동 소수점 차이

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

일부 시스템은 제로를 제로로 표시합니다-0, 다른 사람들은 그냥 보여줍니다0.

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

28.2.5. 열 차이 주문

동일한 행이 출력되는 차이점이 표시 될 수 있습니다. 예상 파일에 나타나는 것과는 다른 순서로 ~ 안에 대부분의 경우 이것은 엄밀히 말해서 버그가 아닙니다. 대부분의 회귀 토토 결과 스크립트는 사용하기에 만족스럽지 않습니다주문 by모든 단일select, 결과 행 순서가 있습니다 SQL의 편지에 따라 잘 정의되지 않았습니다 사양. 실제로, 우리는 똑같이보고 있기 때문에 동일한 소프트웨어로 동일한 데이터에서 실행되는 쿼리 우리는 일반적으로 모든 플랫폼에서 동일한 결과 순서를 받고 그래서 부족주문 by문제. 일부 쿼리에는 크로스 플랫폼 순서가 나타납니다 그러나 차이점. 이미 설치된 토토 결과시 서버, 차이 차이는 C가 아닌 로케일로 인해 발생할 수 있습니다. 사용자 정의와 같은 설정 또는 비 기본 매개 변수 설정 의 값work_mem또는 플래너 비용 매개 변수.

따라서 순서 차이가 표시되면 그렇지 않습니다 쿼리에 query가 없다면 걱정할 것입니다.주문 by결과입니다 위반. 그러나 어쨌든 우리가 추가 할 수 있도록보고하십시오주문 by해당 특정 쿼리에 따라서 가짜 제거"실패"향후 릴리스.

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

28.2.6. 불충분 한 스택 깊이

오류토토 결과 결과 a 서버 충돌선택 infinite_recurse ()명령, 이것은 플랫폼을 의미합니다 프로세스 스택 크기의 제한은보다 작습니다.max_stack_depth매개 변수가 표시됩니다. 서버를 실행하여 수정할 수 있습니다 더 높은 스택 크기 한계 아래 (4MB는 기본값max_stack_depth). 만약에 당신은 그렇게 할 수 없습니다. 대안은 의 가치max_stack_depth.

28.2.7. 그만큼"Random"토토 결과

therandom토토 결과 스크립트가 의도되었습니다 무작위 결과를 생성합니다. 드문 경우가 발생하면 이로 인해 발생합니다 무작위 회귀 토토 결과 실패. 타자

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

하나 또는 몇 줄의 차이 만 생성해야합니다. 너 임의의 토토 결과가 반복적으로 실패하지 않으면 걱정할 필요가 없습니다.