사용언어 생성, a젠 토토사용자는 새로 등록 할 수 있습니다 A를 가진 절차 언어젠 토토데이터베이스. 그 후, 기능 트리거 절차는이 새로운 언어로 정의 될 수 있습니다. 그만큼 사용자는가 있어야합니다.젠 토토새 언어 등록에 대한 슈퍼 서서 권한.
언어 생성효과적으로 언어 이름을 통화 처리기와 연관시킵니다. 언어로 작성된 기능을 실행할 책임이 있습니다. 참조프로그래머 가이드더 많은 것 언어 통화 처리기에 대한 정보.
절차 언어는 개인에게 국한적입니다 데이터베이스. 모든 데이터베이스에서 언어를 사용할 수 있도록합니다 기본값,에 설치해야합니다.template1데이터베이스.
신뢰할 수있는호출을 지정합니다 언어 핸들러는 안전합니다. 즉 우회 할 수있는 기능을 우회 할 수없는 사용자에게 제공하지 않습니다 액세스 제한. 이 키워드가 생략 된 경우 언어 등록,젠 토토Superuser 권한을 사용할 수 있습니다 새로운 기능을 만드는이 언어.
이것은 소음 단어입니다.
새로운 절차 언어의 이름. 언어 이름은 사례 둔감합니다. 절차 적 언어는 할 수 없습니다 내장 된 언어 중 하나를 무시하십시오젠 토토.
뒤로 호환성의 경우 이름이 포함될 수 있습니다 단일 따옴표.
Call_Handler이름입니다 호출 될 이전에 등록 된 기능 중 절차 언어 기능을 실행하십시오. 통화 처리기 절차 적 언어는 편집 된 것으로 작성해야합니다. 버전 1 전화 컨벤션과 함께 C와 같은 언어 등록젠 토토인수를 취하지 않고 반환하는 함수로Language_Handler유형, 자리 표시 자 단순히 함수를 통화로 식별하는 데 사용되는 유형 매니저.
valfunction이름입니다 호출 될 이전에 등록 된 함수의 언어의 새로운 기능이 만들어지면 검증하기 위해 새로운 기능. 유효성 검사 기능이 지정되지 않은 경우 그러면 새 기능이 생성 될 때 확인되지 않습니다. 유효성 검사 기능은 유형의 하나의 인수를 가져와야합니다OID, 이것은 다음의 Oid가 될 것입니다 제작 된 기능은 일반적으로 반환됩니다void.
유효성 검사 기능은 일반적으로 다음을 검사합니다
구문 적 정확성을위한 기능 본문이지만 또한 할 수도 있습니다
예를 들어 기능의 다른 속성을보십시오.
언어는 특정 인수 유형을 처리 할 수 없습니다. 에게
오류 신호, 유효성 검사 기능은를 사용해야합니다.elog ()
함수. 반환
함수의 가치는 무시됩니다.
이 명령은 일반적으로 직접 실행해서는 안됩니다 사용자. 에 제공된 절차 언어의 경우젠 토토분포,Createlang스크립트를 사용해야합니다 올바른 통화 핸들러도 설치합니다. (Createlang전화생성 언어내부적으로.)
in젠 토토이전 버전 7.3, 핸들러 기능을 반환으로 선언해야했습니다. 자리 표시 자형opaque가 아니라Language_Handler. 오래된 로딩을 지원합니다 덤프 파일,언어 생성수락 할 것입니다 반환으로 선언 된 함수opaque, 그러나 통지를 발행하고 선언 된 기능을 변경합니다. 반환 유형Language_Handler.
사용PostgreSQL : 문서 : 7.3 : 토토 핫 만들기새 함수를 생성하는 명령.
use무지개 토토 : 문서 : 7.3 : 언어 드롭또는 더 나은Droplang스크립트, 절차 언어를 삭제하려면
시스템 카탈로그PG_LANGUAGE
현재 설치된 절차에 대한 정보를 기록합니다
언어.
테이블 "PG_LANGUAGE" 속성 | 유형 | 수정 자 --------------+-----------+---------- lanname | 이름 | lanispl | 부울 | lanpltrusted | 부울 | lanplcallfoid | oid | 란 볼리 디터 | oid | lanacl | aclitem [] | lanname | lanispl | lanpltrusted | lanplcallfoid | 란 볼리 디터 | 라나 클 ------------+---------+---------------------------------------------------------------------------------------------------- 내부 | f | f | 0 | 2246 | C | f | f | 0 | 2247 | SQL | f | t | 0 | 2248 | = u
현재, 권한을 제외하고 절차 언어의 정의는 일단 있으면 변경할 수 없습니다. 만들어졌습니다.
절차 언어를 사용할 수 있으려면 사용자는 승인usage특권. 그만큼Createlang프로그램은 자동으로 보조합니다 언어가 알려진 경우 모든 사람에게 권한 신뢰할 수 있습니다.