이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 31 장. 회귀 사설 토토 사이트버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

12장. 회귀 테토토 사이트

회귀 테토토 사이트 지침 및 분석

회귀 테토토 사이트는 다음에 대한 포괄적인 테토토 사이트 세트입니다. SQL 구현포토토 사이트그레SQL. 표준 SQL을 테토토 사이트합니다. 운영 및 확장된 기능PostgreSQL. 테토토 사이트 스위트는 원래 Jolly Chen과 Andrew Yu가 개발했으며 광범위하게 개발되었습니다. Marc Fournier와 Thomas Lockhart가 개정하고 재포장했습니다. 에서포토토 사이트그레SQL6.1 이후 회귀 테토토 사이트는 모든 공식 릴리스에 적용됩니다.

회귀 테토토 사이트는 이미 설치된 서버를 실행하거나 임시 설치를 사용하여 나무를 짓다. 게다가, a"병렬"그리고"순차적"테토토 사이트 실행 모드입니다. 그만큼 순차적 방법은 각 테토토 사이트 스크립트를 차례로 실행하는 반면, 병렬 방법은 여러 서버 프로세스를 시작하여 그룹을 실행합니다. 병렬 테토토 사이트. 병렬 테토토 사이트는 다음과 같은 확신을 줍니다. 프로세스 간 통신 및 잠금이 올바르게 작동하고 있습니다. 을 위한 역사적인 이유로 순차 테토토 사이트는 일반적으로 기존 설치와 임시 대비 병렬 방식 설치는 했으나 기술적인 이유는 없습니다.

빌드 후 회귀 테토토 사이트를 실행하기 전에 설치, 유형

$ gmake 확인
최상위 디렉토리에 있습니다. (또는 다음으로 변경할 수 있습니다.src/테토토 사이트/회귀그리고 명령을 실행하세요 거기.) 이렇게 하면 먼저 다음과 같은 여러 보조 파일이 빌드됩니다. 플랫폼에 따라 다름"예상됨"파일 일부 샘플 사용자 정의 트리거 함수를 실행한 다음 테토토 사이트 드라이버 스크립트. 마지막에는 다음과 같은 내용이 표시됩니다.
======================
 76개 테토토 사이트를 모두 통과했습니다.
======================
또는 실패한 테토토 사이트에 대한 메모입니다. 보다섹션 12.1자세한 내용은 아래를 참조하세요.

참고:이 테토토 사이트 방법은 임시로 실행되기 때문에 서버에서는 루트 사용자인 경우 작동하지 않습니다( 서버는 루트로 시작되지 않습니다). 이미 빌드를 완료한 경우 루트로서 처음부터 다시 시작할 필요는 없습니다. 대신에 다른 사용자가 쓸 수 있는 회귀 테토토 사이트 디렉토리, 로그인 해당 사용자로 로그인하고 테토토 사이트를 다시 시작하세요. 예를 들어,

루트#chmod -R a+w src/테토토 사이트/회귀
루트#su - joeuser
joeuser$gmake 확인
(유일하게 가능한"보안 위험"여기서는 다른 사용자가 회귀 테토토 사이트를 변경할 수 있다는 것입니다 결과를 확인하세요. 사용자 관리 시 상식을 활용하세요 권한.)

또는 설치 후 테토토 사이트를 실행하십시오.

팁:일부 시스템에서는 기본 Bourne 호환 껍데기 (/bin/sh)은 다음과 같은 경우 혼란스러워집니다. 너무 많은 하위 프로세스를 병렬로 관리해야 합니다. 이것 병렬 테토토 사이트 실행이 중단되거나 실패할 수 있습니다. 그런 경우에는 다른 Bourne 호환 쉘을 지정하십시오. 명령줄, 예:

$ gmake SHELL=/bin/ksh 확인

설치 후 테토토 사이트를 실행하려면(참조1장), 데이터 영역을 초기화하고 설명된 대로 서버를 시작합니다.메이저 토토 사이트 : 문서 : 7.1 : 서버 런타임 환경다음을 입력하세요.

$ gmake installcheck
테토토 사이트는 로컬 호스트의 서버에 접속할 것으로 예상됩니다. PGHOST에서 달리 지시하지 않는 한 기본 포트 번호 및 PGPORT 환경 변수.

12.1. 테토토 사이트 평가

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

회귀 테토토 사이트의 실제 결과는 다음 파일에 있습니다. 그만큼src/테토토 사이트/회귀/결과디렉토리. 테토토 사이트 스크립트는차이점각 출력 파일을 비교합니다. 에 저장된 참조 출력src/테토토 사이트/회귀/예상디렉토리. 어느 검사를 위해 차이점이 저장됩니다.src/test/regress/regression.diffs. (또는 할 수 있습니다 달리다차이점당신 자신이 선호하다.)

12.1.1. 오류 메시지 차이점

일부 회귀 테토토 사이트에는 의도적인 무효가 포함되어 있습니다. 입력 값. 오류 메시지는 다음 중 하나에서 나타날 수 있습니다.PostgreSQL코드 또는 호스트 플랫폼 시스템 루틴. 후자의 경우, 메시지는 플랫폼마다 다를 수 있지만 이를 반영해야 합니다. 비슷한 정보. 메시지의 이러한 차이점은 결과는 다음과 같습니다."실패했습니다"회귀 검사를 통해 검증할 수 있는 테토토 사이트입니다.

12.1.2. 로케일 차이

테토토 사이트는 일반 환경에서 실행될 것으로 예상됩니다."ㄷ"로케일. 이로 인해 문제가 발생해서는 안 됩니다. 임시 설치에 대해 테토토 사이트를 실행할 때 회귀 테토토 사이트 드라이버가 시작하는 데 주의를 기울이기 때문에 C 로케일의 서버. 그러나 다음 대상에 대해 테토토 사이트를 실행하면 C가 아닌 로케일 설정을 사용하는 이미 설치된 서버, 문자열에 대한 다양한 규칙으로 인해 차이점이 나타날 수 있습니다. 정렬 순서, 숫자 및 화폐 값의 형식 지정 등 앞으로.

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

12.1.3. 날짜 및 시간 차이

대부분의 날짜 및 시간 결과는 다음에 따라 달라집니다. 시간대 환경. 참조 파일은 다음에 대해 생성됩니다. 시간대는 PST8PDT(캘리포니아주 버클리)이며 다음과 같습니다. 테토토 사이트가 해당 시간에 실행되지 않으면 명백한 실패 구역 설정. 회귀 테토토 사이트 드라이버는 환경을 설정합니다. 변하기 쉬운PGTZPST8PDT적절한 결과를 보장하기 위해. 하지만, 시스템은 PST8PDT 시간에 대한 라이브러리 지원을 제공해야 합니다. 그렇지 않으면 시간대에 따른 테토토 사이트가 실패합니다. 확인하려면 귀하의 컴퓨터가 이 기능을 지원하는지 확인하려면 다음을 입력하세요. 수행원:

$ env TZ=PST8PDT 날짜
위 명령은 현재 시스템을 반환했어야 합니다. PST8PDT 시간대의 시간입니다. PST8PDT 데이터베이스가 아닌 경우 사용 가능한 경우 시스템이 GMT로 시간을 반환했을 수 있습니다. 만약에 PST8PDT 시간대를 사용할 수 없으면 시간대를 설정할 수 있습니다. 규칙을 명시적으로:
PGTZ='PST8PDT7,M04.01.0,M10.05.03'; PGTZ 내보내기

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

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

다음 쿼리 중 일부"타임스탬프"테토토 사이트를 실행하면 테토토 사이트가 실패합니다 서머타임 변경일 또는 당일 하나 전이나 후에. 이러한 쿼리는 간격이 다음과 같다고 가정합니다. 어제 자정, 오늘 자정, 자정 사이 내일은 정확히 24시간입니다. 일광 절약 시간이 적용되거나 적용되지 않습니다. 그 동안에.

12.1.4. 부동 소수점 차이

일부 테토토 사이트에는 64비트 컴퓨팅이 포함됩니다(배정밀도) 테이블 열의 숫자입니다. 의 수학적 함수와 관련된 결과의 차이배정밀도열이 되었습니다. 관찰됨. float8 및 기하학 테토토 사이트는 특히 플랫폼 간에는 작은 차이가 발생하기 쉽습니다. 다양한 컴파일러 최적화 옵션. 인간의 안구 실제 의미를 결정하려면 비교가 필요합니다. 이러한 차이는 일반적으로 오른쪽으로 10자리입니다. 소수점.

일부 시스템에서 오류 신호를 보냅니다.파우()그리고특급()현재 기대되는 메커니즘과 다르게포토토 사이트그레SQL코드.

12.1.5. 다각형 차이

몇 가지 테토토 사이트에는 지리 데이터에 대한 작업이 포함됩니다. 캘리포니아주 오클랜드/버클리 거리 지도에 대해 알아보세요. 지도 데이터는 정점이 쌍으로 표현되는 다각형으로 표현됩니다. 의배정밀도숫자(십진수 위도와 경도). 처음에는 일부 테이블이 생성됩니다. 지리 데이터가 로드되면 일부 뷰가 생성됩니다. 다각형 교차 연산자를 사용하여 두 테이블을 조인합니다. (##), 그런 다음 선택이 수행됩니다. 보다.

다른 플랫폼의 결과를 비교할 때, 오른쪽 2번째나 3번째 위치에서 차이가 발생합니다. 콤마. 이러한 문제가 발생하는 SQL 문 다음은 다음과 같습니다:

SELECT * 거리에서;
iexit에서 *를 선택하세요.

12.1.6. 튜플 순서 차이

동일한 튜플이 다른 점을 볼 수 있습니다. 예상한 것과 다른 순서로 출력 파일. 대부분의 경우 이는 엄밀히 말하면 버그가 아닙니다. 대부분의 회귀 테토토 사이트 스크립트는 그렇게 현학적이지 않습니다. 모든 단일 SELECT에 대해 ORDER BY를 사용하므로 그 결과 튜플 순서가 문자에 따라 잘 정의되지 않았습니다. SQL 사양의 실제로, 우리가 보고 있기 때문에 동일한 쿼리가 동일한 쿼리에 의해 동일한 데이터에 대해 실행됩니다. 소프트웨어를 사용하는 경우 일반적으로 모든 항목에서 동일한 결과를 얻습니다. 플랫폼이므로 ORDER BY가 부족한 것은 문제가 되지 않습니다. 일부 쿼리는 플랫폼 간 순서 차이를 나타냅니다. 하지만. (주문 차이는 C가 아닌 언어에서도 발생할 수 있습니다. 로케일 설정.)

그러므로 순서에 차이가 있는 경우에는 그렇지 않습니다. 쿼리에 ORDER가 없으면 걱정할 사항 귀하의 결과가 위반되었습니다. 그런데 신고 좀 해주세요 어쨌든 특정 항목에 ORDER BY를 추가할 수 있도록 쿼리하여 가짜를 제거합니다."실패"향후 릴리스에서.

왜 우리가 모든 회귀 테토토 사이트를 주문하지 않는지 궁금하실 겁니다. 이 문제를 완전히 없애기 위해 선택합니다. 이유 그것은 회귀 테토토 사이트의 유용성을 떨어뜨린다는 것입니다. 그 이상은 쿼리 계획 유형을 실행하는 경향이 있기 때문입니다. 그 결과를 제외하고 정렬된 결과를 생성합니다. 하지 않다.

12.1.7. 그만큼"무작위"테토토 사이트

다음에 하나 이상의 사례가 있습니다."무작위"테토토 사이트 스크립트는 무작위 결과를 생성합니다. 이로 인해 무작위가 실패하게 됩니다. 가끔 회귀 테토토 사이트(아마 5번에 한 번) 10번의 시도까지). 타자

차이 결과/random.out 예상/random.out
한 줄 또는 몇 줄의 차이만 생성되어야 합니다. 너 무작위 테토토 사이트가 반복적으로 실패하지 않는 한 걱정할 필요가 없습니다. 시도. (반면에 무작위 테토토 사이트의 경우절대로많은 시험에서도 실패한다고 보고되었습니다. 회귀 테토토 사이트를 해보면 아마해야 합니다걱정하세요.)