일부는 올바르게 설치되고 완전히 작동합니다postgresql설치 CAN“실패”이러한 회귀 스포츠 토토 중 일부는 플로팅 포인트 표현 및 메시지 문구와 같은 플랫폼 별 아티팩트로 인한 것입니다. 스포츠 토토는 현재 간단한 것을 사용하여 평가됩니다diff
참조 시스템에서 생성 된 출력과 비교하므로 결과는 작은 시스템 차이에 민감합니다. 스포츠 토토가로보고 될 때“실패”, 항상 예상 결과와 실제 결과의 차이점을 검토하십시오. 차이가 중요하지 않다는 것을 알 수 있습니다.
회귀 스포츠 토토의 실제 출력은 파일에 있습니다src/test/regess/results
디렉토리. 스포츠 토토 스크립트 사용diff
각 출력 파일을에 저장된 참조 출력과 비교하려면src/test/regress/expect
디렉토리. 검사를 위해 차이가 저장됩니다.src/test/regress/regression.diffs
. (핵심 스포츠 토토 이외의 스포츠 토토 스위트를 실행할 때이 파일은 물론 관련 하위 디렉토리에 나타납니다.src/test/regress
.)
마음에 들지 않으면diff
기본적으로 사용되는 옵션, 환경 변수 설정pg_regress_diff_opts
, 예를 들어PG_REGRESS_DIFF_OPTS = '-C'
. (또는 실행할 수 있습니다diff
자신, 원하는 경우.)
어떤 이유로 든 특정 플랫폼이 a를 생성합니다.“실패”주어진 스포츠 토토의 경우 출력 검사를 통해 결과가 유효하다는 것을 확신시켜 주면 향후 스포츠 토토 실행에서 실패 보고서를 침묵시키기 위해 새로운 비교 파일을 추가 할 수 있습니다. 보다섹션 33.3자세한 내용.
일부 회귀 스포츠 토토에는 의도적 인 유효하지 않은 입력 값이 포함됩니다. 오류 메시지는에서 나올 수 있습니다.postgresql코드 또는 호스트 플랫폼 시스템 루틴에서. 후자의 경우 메시지는 플랫폼마다 다를 수 있지만 유사한 정보를 반영해야합니다.“실패”검사로 검증 될 수있는 회귀 스포츠 토토.
C 이외의 Collation-Loder 로케일로 초기화 된 서버에 대해 스포츠 토토를 실행하면 정렬 순서 및 후속 고장으로 인해 차이가있을 수 있습니다. 회귀 스포츠 토토 스위트는 많은 지역을 처리하는 것으로 알려진 대체 결과 파일을 제공 하여이 문제를 처리하도록 설정되었습니다.
임시 설치 방법을 사용할 때 다른 로케일에서 스포츠 토토를 실행하려면 적절한 로케일 관련 환경 변수를 전달하십시오.만들기
명령 줄, 예 :
확인 make lang = de_de.utf8
(회귀 스포츠 토토 드라이버 UnsetsLC_ALL
, 따라서 해당 변수를 사용하여 로케일을 선택하는 것은 작동하지 않습니다.) 로케일을 사용하지 않으려면 모든 로케일 관련 환경 변수를 설정하지 않거나 설정하십시오.C
) 또는 다음 특수 호출을 사용하십시오 :
확인 make no_locale = 1
기존 설치에 대한 스포츠 토토를 실행할 때 로케일 설정은 기존 설치에 의해 결정됩니다. 변경하려면 적절한 옵션을 전달하여 다른 로케일로 데이터베이스 클러스터를 초기화합니다.initdb
.
일반적으로 생산에 필요한 로케일 설정에서 회귀 스포츠 토토를 실행하는 것이 좋습니다. 이는 실제로 생산에 사용될 로케일 및 인코딩 관련 코드 부분을 수행 할 것이기 때문입니다. 운영 체제 환경에 따라 실패가 발생할 수 있지만 실제 응용 프로그램을 실행할 때 어떤 로케일 별 행동이 무엇을 기대 해야하는지 알 수 있습니다.
대부분의 날짜 및 시간 결과는 시간대 환경에 따라 다릅니다. 참조 파일은 시간대에 대해 생성됩니다America/Los_angeles
, 해당 시간대 설정으로 스포츠 토토가 실행되지 않으면 명백한 실패가 발생합니다. 회귀 스포츠 토토 드라이버는 환경 변수를 설정합니다pgtz
toAmerica/Los_angeles
, 일반적으로 적절한 결과를 보장합니다.
일부 스포츠 토토에는 64 비트 플로팅 포인트 숫자를 계산하는 것이 포함됩니다 (이중 정밀도
) 표 열에서. 수학적 기능과 관련된 결과의 차이이중 정밀도
열이 관찰되었습니다. 그만큼float8
and지오메트리
스포츠 토토는 특히 플랫폼에서 또는 다른 컴파일러 최적화 설정에서도 작은 차이가 발생하기 쉽습니다. 인간의 안구 비교는 소수점의 오른쪽에있는 10 개의 장소 인 이러한 차이의 실제 중요성을 결정하기 위해 필요합니다.
일부 시스템은 제로를 제로로 표시합니다-0
, 다른 사람들은 그냥 보여줍니다0
.
일부 시스템 신호 오류pow ()
andexp ()
전류가 기대하는 메커니즘과 다르게postgresql코드.
예상 파일에 나타나는 것과 동일한 행이 다른 순서로 출력되는 차이가 표시 될 수 있습니다. 대부분의 경우 이것은 엄밀히 말하면 버그가 아닙니다.주문 by
모든 단일select
, 따라서 결과 행 순서는 SQL 사양에 따라 잘 정의되지 않습니다. 실제로 동일한 소프트웨어로 동일한 데이터에서 동일한 쿼리를 실행하고 있기 때문에 일반적으로 모든 플랫폼에서 동일한 결과 순서를 얻습니다.주문 by
는 문제가되지 않습니다. 그러나 일부 쿼리는 크로스 플랫폼 순서 차이를 보여줍니다.work_mem
또는 플래너 비용 매개 변수.
따라서 주문 차이가 표시되면 쿼리에 Query가 없으면 걱정할 것이 아닙니다.주문 by
결과가 위반되고 있습니다. 그러나 어쨌든 우리가 추가 할 수 있도록보고하십시오주문 by
가짜를 제거하기 위해 특정 쿼리에“실패”향후 릴리스.
왜 우리 가이 문제를 한 번에 제거하기 위해 모든 회귀 스포츠 토토 쿼리를 명시 적으로 주문하지 않는지 궁금 할 것입니다. 그 이유는 회귀 스포츠 토토가 더 유용하지 않아서 더 이상 유용하지 않기 때문입니다. 왜냐하면 그들은 그렇지 않은 결과를 제외하고 순서대로 결과를 생성하는 쿼리 계획 유형을 행사하는 경향이 있기 때문입니다..
오류
스포츠 토토 결과 서버 충돌로 스포츠 토토 결과infinite_recurse () 선택
명령, 즉 프로세스 스택 크기에 대한 플랫폼의 한계가보다 작음을 의미합니다.max_stack_depth매개 변수가 표시됩니다. 더 높은 스택 크기 한계 하에서 서버를 실행하여 수정할 수 있습니다 (기본값에서 4MB가 권장됩니다.max_stack_depth
). 그렇게 할 수 없다면 대안은의 가치를 줄이는 것입니다.max_stack_depth
.
지원 플랫폼getRlimit ()
, 서버는 자동으로 안전한 값을 선택해야합니다max_stack_depth
; 따라서이 설정을 수동으로 무시하지 않으면 이런 종류의 실패는보고 가능한 버그입니다.
therandom
스포츠 토토 스크립트는 무작위 결과를 생성하기위한 것입니다. 매우 드문 경우 이로 인해 회귀 스포츠 토토가 실패합니다.
diff results/random.out export/random.out
는 하나 또는 몇 줄의 차이 만 생성해야합니다. 임의의 스포츠 토토가 반복적으로 실패하지 않으면 걱정할 필요가 없습니다.
기존 설치에 대한 스포츠 토토를 실행할 때 일부 비 기본 매개 변수 설정으로 인해 스포츠 토토가 실패 할 수 있습니다. 예를 들어,와 같은 매개 변수 변경enable_seqscan
또는enable_indexscan
사용하는 스포츠 토토 결과에 영향을 줄 계획 변경을 유발할 수 있습니다설명
.
문서에 올바른 것이 없다면 일치하지 않습니다.이 양식문서 문제를보고하려면