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

12 장 회귀 테토토 사이트

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

회귀 테토토 사이트는 포괄적 인 테토토 사이트 세트입니다. SQL 구현토토 사이트. 그들은 표준 SQL을 테토토 사이트합니다 운영 및 확장 된 기능토토 사이트. 테토토 사이트 스위트는 원래였습니다 Jolly Chen과 Andrew Yu가 개발했으며 광범위하게 Marc Fournier와 Thomas Lockhart가 수정하고 재 포장했습니다. 에서토토 사이트6.1 위로 회귀 테토토 사이트는 모든 공식 릴리스마다 최신입니다.

회귀 테토토 사이트는 이미 설치된 것에 대해 실행할 수 있습니다. 서버를 실행하거나 내에서 임시 설치를 사용합니다. 빌드 트리. 또한가 있습니다."병렬"및 a"순차"테토토 사이트 실행 모드. 그만큼 순차적 메소드는 각 테토토 사이트 스크립트를 차례로 실행하지만 병렬 메소드는 여러 서버 프로세스를 시작하여 그룹을 실행합니다. 병렬로 테토토 사이트. 병렬 테토토 사이트는 자신감을줍니다 의사 소통과 잠금이 올바르게 작동합니다. 을 위한 역사적 이유, 순차적 테토토 사이트는 일반적으로 기존 설치 및 임시에 대한 병렬 메소드 설치이지만 기술적 인 이유는 없습니다.

구축 후 회귀 테토토 사이트를 실행합니다 설치, 유형

$gmake check
최상위 디렉토리에서. (또는 변경할 수 있습니다src/test/regress명령을 실행하십시오 이것은 먼저 다음과 같은 여러 보조 파일을 작성합니다. 플랫폼 의존적"예상"파일 일부 샘플 사용자 정의 트리거 기능을 수행 한 다음 테토토 사이트 드라이버 스크립트. 결국에는와 같은 것을 볼 수 있습니다.
====================
 76 개의 테토토 사이트가 모두 통과되었습니다.
======================
또는 그렇지 않으면 어떤 테토토 사이트가 실패했는지에 대한 메모입니다. 보다섹션 12.1자세한 내용은 아래.

참고 :이 테토토 사이트 방법은 임시로 실행되기 때문입니다 서버, 루트 사용자 일 때는 작동하지 않습니다 ( 서버는 루트로 시작하지 않습니다). 이미 빌드를했다면 루트로서, 당신은 온통 시작할 필요가 없습니다. 대신에 다른 사용자가 쓸 수있는 회귀 테토토 사이트 디렉토리, 로그인 그 사용자로서 테토토 사이트를 다시 시작하십시오. 예를 들어,

루트#CHMOD -R A+W SRC/TEST/Regress
루트#Su -Joeuser
Joeuser $gmake check
(유일한 가능한"보안 위험"여기 다른 사용자가 회귀 테토토 사이트를 변경할 수 있습니다. 등 뒤에 결과. 사용자를 관리 할 때 상식을 사용하십시오 권한.)

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

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

$gmake shell =/bin/ksh check

설치 후 테토토 사이트를 실행하려면 (참조1 장), 데이터 영역 초기화 및 에 설명 된대로 서버 시작메이저 토토 사이트 : 문서 : 7.1 : 서버 런타임 환경, 그런 다음 유형

$Gmake InstallCheck
테토토 사이트는 로컬 호스트의 서버에 연락 할 것으로 예상됩니다. PGHOST가 달리 지시하지 않는 한 기본 포트 번호 및 Pgport 환경 변수.

12.1. 테토토 사이트 평가

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

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

12.1.1. 오류 메시지 차이

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

12.1.2. 로케일 차이

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

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

12.1.3. 날짜와 시간 차이

대부분의 날짜와 시간 결과는 시간대 환경. 참조 파일이 생성됩니다 시간대 PST8PDT (캘리포니아 버클리)가있을 것입니다 그 시간이 지남에 따라 테토토 사이트가 실행되지 않으면 명백한 실패 구역 설정. 회귀 테토토 사이트 드라이버는 환경을 설정합니다 변하기 쉬운pgtztopst8pdt적절한 결과를 보장합니다. 하지만, 귀하의 시스템은 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 및 Geometry 테토토 사이트가 특히 있습니다 플랫폼 또는 심지어는 작은 차이가 발생하기 쉽습니다 다른 컴파일러 최적화 옵션. 인간 안구 실제의 중요성을 결정하려면 비교가 필요합니다 일반적으로 오른쪽에있는 10 장소 인 이러한 차이점 소수점.

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

12.1.5. 다각형 차이

여러 테토토 사이트에는 지리적 데이터에 대한 작업이 포함됩니다 오클랜드/버클리, 캘리포니아 스트리트 맵 정보. 맵 데이터입니다 정점이 쌍으로 표현되는 다각형으로 표현됩니다 의이중 정밀숫자 (소수점 위도와 경도). 처음에는 일부 테이블이 생성됩니다 지리적 데이터가로드 된 다음 일부 뷰가 생성됩니다. 다각형 교차로 연산자를 사용하여 두 테이블에 합류합니다 (##), 다음에서 선택이 완료됩니다 보다.

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

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

12.1.6. 튜플 주문 차이

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

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

왜 우리가 모든 회귀 테토토 사이트를 주문하지 않는지 궁금 할 것입니다. 이 문제를 한 번에 제거하도록 선택합니다. 이유 그것이 회귀 테토토 사이트가 덜 유용하게 만드는 것입니다. 더욱 그 결과를 배제하기 위해 순서 대상 결과를 생성합니다 하지 않다.

12.1.7. 그만큼"random"테토토 사이트

에 적어도 하나의 사례가 있습니다"Random"의도 된 테토토 사이트 스크립트 무작위 결과를 생성합니다. 이것은 무작위가 실패하게합니다 회귀 테토토 사이트 한 번에 가끔 (아마도 5 개마다 한 번 10 번의 시험). 타자

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