이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 39.1. 윈 토토 토토 꽁 머니버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

16.2. 무엇 윈 토토 트리입니까?

규칙 시스템의 작동 방식을 이해하려면 필요한 그것이 언제 호출되었는지, 그 입력과 결과가 무엇인지 알고 있습니다.

규칙 시스템은 윈 토토 파서와 입안자. 파서의 출력, 하나의 윈 토토 트리 및 의 재 작성 규칙pg_rewrite카탈로그는 몇 가지 추가 정보가 포함 된 윈 토토 트리입니다. 결과적으로 0 또는 많은 윈 토토 트리를 만듭니다. 그래서 입력과 출력은 항상 파서 자체가 생산할 수있는 것입니다. 따라서, 그것이 보는 것은 기본적으로로 표현할 수 있습니다.SQL진술.

이제 윈 토토 트리는 무엇입니까? 그것은 내부 표현입니다SQL그것을 구축 한 단일 부품은 별도로 저장됩니다. 이 윈 토토 시작할 때 나무가 보입니다postgresql디버그 레벨 4로 백엔드 대화식 백엔드 인터페이스에 윈 토토를 입력합니다. 규칙 의 행동pg_rewrite시스템 카탈로그는 또한 윈 토토 트리로 저장됩니다. 그들은 형식화되지 않았습니다 디버그 출력과 마찬가지로 정확히 동일합니다. 정보.

윈 토토 트리를 읽는 데 약간의 경험이 필요하며 규칙 시스템에서 작업하기 시작했을 때 어려움을 겪었습니다. 나는 할 수있다 나는 커피 머신에 서 있었고 나는 레인지 테이블의 대상 목록, 물 및 커피 가루 컵 그리고 자격 표현의 모든 버튼. 부터SQL윈 토토 표현 나무는 규칙 시스템,이 문서를 이해하기에 충분합니다. 읽는 법을 가르치지 않을 것입니다. 배우는 데 도움이 될 수 있습니다 나중에 이름 지정 규칙은 후반에 필요합니다 설명.

16.2.1. 그만큼 윈 토토 트리의 일부

읽을 때SQL이 문서에서 쿼리 트리의 표현은 다음과 같습니다. 진술이 쿼리 트리 구조에있을 때 고장납니다. 부분 쿼리 트리의

명령 유형

이것은 어떤 명령을 알려주는 간단한 값입니다 (select, 삽입, 업데이트, 삭제) 구문 분석 트리 생성.

범위 테이블

범위 테이블은 사용되는 관계 목록입니다. 쿼리에서. 선택된 진술에서 이것들은 다음과 같습니다 키워드에서 나온 관계.

모든 범위 테이블 항목은 테이블 또는보기를 식별합니다. 다른 이름으로 어떤 이름이 호출되는지 알려줍니다. 쿼리. 쿼리 트리에서 범위 테이블 항목은 다음과 같습니다 이름보다는 색인으로 참조하므로 여기에 중복 이름이 있든 상관 없습니다. 에서SQL진술. 규칙의 범위 테이블이 발생한 후에 발생할 수 있습니다. 병합.이 문서의 예에는 이 상황.

결과 관계

이것은 식별하는 범위 테이블에 대한 색인입니다. 쿼리 결과가가는 관계.

선택 쿼리 선택 일반적으로 결과 관계가 없습니다. 선택의 특별한 경우는 대부분 동일합니다. 생성 테이블, 삽입 ... 시퀀스를 선택하고 여기에서 별도로 논의.

삽입, 업데이트 및 삭제 결과 결과 관계는 변경 사항이 취하는 테이블 (또는보기)입니다. 효과.

대상 목록

대상 목록은 정의하는 표현 목록입니다. 쿼리의 결과. SELECT의 경우 표현식은 최종 출력을 구축하는 것입니다 질문. 그것들은 select와 사이의 표현입니다 키워드에서. (*는 모든 것에 대한 약어입니다 관계의 속성 이름. 그것은 확장됩니다 개별 속성으로 구문 분석하여 규칙 시스템 절대 보지 못해.)

쿼리 삭제는 대상 목록이 필요하지 않습니다 결과를 얻지 마십시오. 실제로 플래너는 a를 추가합니다 빈 대상 목록에 특별한 CTID 항목. 그러나 이것은입니다 규칙 시스템 이후에 그리고 나중에 논의 될 것입니다. 을 위한 규칙 시스템 대상 목록이 비어 있습니다.

삽입 쿼리에서 대상 목록은 새를 설명합니다 결과 관계로 들어가야하는 행. 그것은입니다 값 조항의 표현 또는 insert에서 절을 선택하십시오 ... 선택. 누락 된 열 결과 관계는 플래너에 의해 채워집니다. 끊임없는 널 표현.

업데이트 쿼리에서 대상 목록은 새를 설명합니다 오래된 것들을 대체 해야하는 행. 규칙에서 시스템에는 세트의 표현식 만 포함되어 있습니다 속성 = 쿼리의 표현 부분. 플래너 표현식을 삽입하여 누락 된 열을 추가합니다 이전 행의 값을 새 행으로 복사하십시오. 그리고 그것 삭제와 마찬가지로 특수 CTID 항목을 추가합니다. 도.

대상 목록의 모든 항목에는 표현식이 포함되어 있습니다 그것은 일정한 값이 될 수 있으며, 가변을 가리키는 변수 범위 테이블의 관계 중 하나의 속성, 매개 변수 또는 기능 호출로 만든 표현식 트리, 상수, 변수, 연산자 등

자격

쿼리의 자격은 매우 표현입니다 대상 목록 항목에 포함 된 것 중 하나. 그만큼 이 표현의 결과 가치는 작업 (삽입, 업데이트, 삭제 또는 선택) 인 경우 최종 결과 행은 실행 여부를 실행해야합니다. 그것은입니다 AN의 위치SQL진술.

가입 트리

쿼리의 조인 트리는 절. select a, b, c와 같은 간단한 쿼리의 경우 가입 트리는 단지 항목의 목록 일뿐입니다. 어떤 순서로든 참여할 수 있습니다. 그러나 가입하면 표현 --- 특히 외부 결합 ---- 우리는 사용됩니다 조인이 표시 한 순서대로 조인해야합니다. 가입 트리는 조인식 표현의 구조를 보여줍니다. 그만큼 특정 조인 조항과 관련된 제한 (ON 또는 사용 표현)는 다음과 같이 저장됩니다 이 가입 트리에 첨부 된 자격 표현 노드. 저장하는 것이 편리한 것으로 판명되었습니다 첨부 된 자격으로 표현 된 최상위 최상위 가입 트리 항목도 있습니다. 그래서 정말로 가입 나무는 선택하다.

다른 사람

주문과 같은 윈 토토 트리의 다른 부분 절은 여기에 관심이 없습니다. 규칙 시스템 규칙을 적용하는 동안 출품작을 대체하지만 규칙의 기초와 관련이 없습니다. 체계.