윈 토토 : 문서 : 9.4 : 윈 토토 | |||
---|---|---|---|
PostgreSQL : 문서 : 9.4 : 토토 커뮤니티 시스템 | PostgreSQL : 문서 : 9.4 : 토토 커뮤니티 시스템 | 제 38 장. 규칙 시스템 | 와이즈 토토3_와이즈 토토와이즈 토토검은 색 |
규칙 시스템이 어떻게 작동하는지 이해하려면 언제 호출 될시기와 입력 및 결과가 무엇인지 알아야합니다.
규칙 시스템은 파서와 플래너 사이에 있습니다. 구문 분석기, 하나의 쿼리 토토 사이트 및 사용자 정의 재 작성 규칙의 출력이 필요합니다.이 규칙은 추가 정보가 포함 된 토토 사이트를 쿼리하고 결과적으로 0 이상의 쿼리 토토 사이트를 생성합니다.SQL진술.
이제 쿼리 토토 사이트는 무엇입니까? 그것은 내부 표현입니다SQL구축 된 단일 부품이 별도로 저장되는 문장. 구성 매개 변수를 설정하면 이러한 쿼리 토토 사이트가 서버 로그에 표시 될 수 있습니다debug_print_parse, debug_print_rewritten또는debug_print_plan. 규칙 조치는 시스템 카탈로그에서 쿼리 토토 사이트로 저장됩니다pg_rewrite. 로그 출력과 같이 형식화되지는 않지만 정확히 동일한 정보를 포함합니다.
원시 쿼리 토토 사이트를 읽으려면 약간의 경험이 필요합니다. 하지만 이후SQL쿼리 토토 사이트의 표현은 규칙 시스템을 이해하기에 충분합니다.이 장은이를 읽는 방법을 가르치지 않습니다.
읽을 때SQL쿼리 토토 사이트의 표현이 장에서는 쿼리 토토 사이트 구조에있을 때 문장이 끊어진 부분을 식별 할 수 있어야합니다. 쿼리 토토 사이트의 일부는
이것은 어떤 command (를 알려주는 간단한 값입니다.select, 삽입, 업데이트, 삭제) 쿼리 토토 사이트를 생성했습니다.
범위 테이블은 쿼리에 사용되는 관계 목록입니다. 에서select진술 이들은 이후에 주어진 관계입니다.From키 단어.
모든 범위 테이블 항목은 테이블이나 뷰를 식별하고 쿼리의 다른 부분에서 어떤 이름을 호출하는지 알려줍니다. 쿼리 트리에서 범위 테이블 항목은 이름이 아닌 숫자로 참조되므로 여기서는와 같이 중복 이름이 있는지 여부는 중요하지 않습니다.SQL진술. 이것은 규칙의 범위 테이블이 병합 된 후에 발생할 수 있습니다.이 장의 예제에는이 상황이 없습니다.
이것은 쿼리 결과가 어디로 가는지를 식별하는 범위 테이블에 대한 색인입니다.
select쿼리에는 결과 관계가 없습니다. (특별한 경우선택대부분 동일합니다테이블 생성그 뒤에삽입 ... 선택, 여기에서 별도로 논의되지 않습니다.)
for삽입, 업데이트및삭제명령, 결과 관계는 변경 사항이 적용되는 표 (또는보기)입니다.
대상 목록은 쿼리 결과를 정의하는 표현 목록입니다. A의 경우select,이 표현식은 쿼리의 최종 출력을 구축하는 표현입니다. 그들은 핵심 단어 사이의 표현에 해당합니다selectandFrom. (*는 관계의 모든 열 이름에 대한 약어입니다. 파서에 의해 개별 열로 확장되므로 규칙 시스템은 결코 볼 수 없습니다.)
삭제명령은 결과를 생성하지 않기 때문에 일반 대상 목록이 필요하지 않습니다. 대신 규칙 시스템이 특별한 추가ctid빈 대상 목록에 입력하여 집행자가 삭제할 행을 찾을 수 있도록합니다. (ctid결과 관계가 일반 테이블 인 경우 추가됩니다. 보기 인 경우, 전체 열 변수가 대신에 추가됩니다.섹션 38.2.4.)
for삽입명령, 대상 목록은 결과 관계에 들어가야하는 새 행을 설명합니다. 그것은의 표현으로 구성됩니다.값조항 또는select조항삽입 ... 선택. 다시 쓰기 프로세스의 첫 번째 단계는 원래 명령에 의해 할당되지 않았지만 기본값이있는 모든 열에 대한 대상 목록 항목을 추가합니다.
for업데이트명령, 대상 목록은 이전 행을 대체 해야하는 새 행을 설명합니다. 규칙 시스템에는의 표현 만 포함됩니다.set column = expression명령의 일부. 플래너는 이전 행의 값을 새 제품으로 복사하는 표현식을 삽입하여 누락 된 열을 처리합니다.삭제, 규칙 시스템이 A를 추가합니다.ctid또는 전체 열 변수가 업데이트 될 이전 행을 식별 할 수 있도록 전체 열 변수.
대상 목록의 모든 항목에는 상수 값이 될 수있는 표현식, 범위 테이블의 관계 중 하나의 열을 가리키는 변수, 매개 변수 또는 함수 호출, 상수, 변수, 운영자 등의 표현식 트리를 가리 킵니다.
쿼리의 자격은 대상 목록 항목에 포함 된 표현과 매우 유사합니다. 이 표현의 결과 값은 조작 여부를 알려주는 부울입니다 (삽입, 업데이트, 삭제또는select) 최종 결과 행의 경우 실행 여부를 실행해야합니다. 그것은에 해당합니다.여기서조항SQL진술.
쿼리의 조인 토토 사이트는의 구조를 보여줍니다.From절. 간단한 쿼리와 같은선택 ... A, B, C, 조인 토토 사이트는의 목록 일뿐입니다.From항목, 우리는 어떤 순서로든 그것들을 가입 할 수 있기 때문입니다. 하지만 언제Join표현, 특히 외부 결합이 사용되며 조인에 의해 표시된 순서대로 조인해야합니다. 이 경우 조인 토토 사이트는의 구조를 보여줍니다.Join표현. 특정과 관련된 제한Join클로즈 (on또는사용Expressions)는 해당 조인 트리 노드에 첨부 된 자격 표현으로 저장됩니다. 최상위 수준을 저장하는 것이 편리한 것으로 판명여기서최상위 수준의 조인 트리 항목에 첨부 된 자격으로서의 표현. 그래서 실제로 결합 트리는 두 가지를 모두 나타냅니다.Fromand여기서a의 조항select.
쿼리 토토 사이트의 다른 부분은주문 by절은 여기에 관심이 없습니다. 규칙 시스템은 규칙을 적용하는 동안 일부 항목을 대체하지만 규칙 시스템의 기본 사항과 관련이 없습니다.