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

2.4. 그만큼롤 토토규칙 시스템

롤 토토강력한 지원규칙 시스템의 사양보기및 모호한업데이트보기. 원래롤 토토규칙 시스템은 2로 구성되었습니다 구현 :

  • 첫 번째는 사용을 사용했습니다튜플 수준처리하고 깊이 구현되었습니다executor. 규칙 시스템이 호출되었습니다 개별 튜플에 접근 할 때마다. 이것 1995 년에 마지막 공무원이 구현되었습니다 출시롤 토토프로젝트가롤 토토95.

  • 규칙 시스템의 두 번째 구현은 a 라는 기술쿼리 재 작성. 그만큼시스템 재 작성는 모듈입니다 사이에 존재합니다.Parser Stage및 그만큼Planner/Optimizer. 이것 기술은 여전히 ​​구현되었습니다.

| 규칙의 구문 및 생성에 대한 정보롤 토토시스템 참조롤 토토QL 사용자 안내서.

2.4.1. 그만큼 시스템 재 작성

the쿼리 재 작성 시스템is 파서 스테이지와 플래너/최적화기 사이의 모듈. 그것 파서 스테이지 (Parser Stage)에 의해 뒤로 물러 난 트리를 처리합니다 ( 사용자 쿼리를 나타냅니다.) 규칙이있는 경우 쿼리에 적용되어야합니다. 트리를 다시 작성합니다. 대체 양식.

2.4.1.1. 보기를 구현하는 기술

이제 우리는 쿼리 재 작성의 알고리즘을 스케치합니다. 체계. 더 나은 예를 들기 위해 구현 방법을 보여줍니다 규칙을 예로 들어 사용하는 뷰.

다음 규칙을 제공하자 :

규칙보기 view_rule 작성
  선택과 마찬가지로 
  test_view에
  대신하십시오
     s.sname, p.pname을 선택하십시오
     공급 업체에서 SE, PART P.
     여기서 s.sno = se.sno 및
           p.pno = se.pno;

주어진 규칙은입니다.해고관계에 대한 선택이있을 때마다test_view감지됩니다. 선택하는 대신 튜플test_view선택 에 주어진 진술행동 부품의 규칙이 실행되었습니다.

다음 사용자 쿼리를test_view제공 :

SNAME을 선택하십시오 
  test_view에서
  Sname < 'Smith';

다음은 쿼리 재 작성에서 수행 한 단계 목록입니다. 사용자 정체가 될 때마다test_view나타납니다. (다음 목록은 a 알고리즘에 대한 매우 비공식적 인 설명 기본 이해. 자세한 설명은를 참조하십시오.Stonebraker et al, 1989).

test_view다시 쓰기

  1. 규칙.

  2. TargetList를 적응하여 숫자와 순서를 충족합니다. 사용자 쿼리에 주어진 속성

  3. WHERE 절에 주어진 자격을 추가하십시오 주어진 쿼리 자격에 대한 사용자 쿼리 규칙의 행동 부분에서.

위의 규칙 정의가 주어지면 사용자 쿼리가 될 것입니다 다음 형식으로 다시 작성했습니다 (다시 쓰기는 사용자 쿼리의 내부 표현에 대해 수행됩니다 파서 스테이지 옆으로 돌아 왔지만 파생 된 새로운 데이터 구조 다음 쿼리를 나타냅니다) :

s.sname을 선택하십시오
  공급 업체에서 SE, PART P.
  여기서 s.sno = se.sno 및
        p.pno = se.pno 및
        s.sname < 'Smith';