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

생성 젠 토토

이름

젠 토토 생성-새로운 절차를 정의하십시오 젠 토토

시놉시스

만들기 [또는 교체] [절차] 젠 토토 생성이름생성 [또는 교체] [신뢰할 수있는] [절차] 젠 토토이름핸들러call_handler[inlineinline_handler] [Validatorvalfunction]

설명

젠 토토 생성새를 등록합니다 A를 가진 절차 젠 토토PostgreSQL데이터베이스. 그 후, 기능 트리거 절차는이 새로운 젠 토토로 정의 될 수 있습니다.

참고 :PostgreSQL9.1, 대부분의 절차 언어가 만들어졌습니다"확장"로 설치PostgreSQL :not젠 토토 생성. Direct use of젠 토토 생성이제 확장 설치 스크립트에 국한됩니다. 당신이"베어"당신의 젠 토토 데이터베이스, 아마도 업그레이드의 결과로 변환 할 수 있습니다. 사용 확장으로확장 생성langname포장되지 않은.

젠 토토 생성효과적으로 언어 이름을 핸들러 기능과 연관시킵니다 언어로 작성된 기능을 실행할 책임이 있습니다. 참조PostgreSQL : 문서 : 9.2 : 절차 언어 스포츠 토토 결과 작성더 많은 것 젠 토토 처리기에 대한 정보.

두 가지 형태의생성 젠 토토명령. 첫 번째 형태에서 사용자는 단지 공급합니다 원하는 언어의 이름과PostgreSQL서버 상담PG_PLTEMPLATE시스템 카탈로그를 결정합니다 올바른 매개 변수. 두 번째 형태에서 사용자는 다음을 제공합니다 언어 이름과 함께 언어 매개 변수. 두 번째 형태 정의되지 않은 언어를 만드는 데 사용될 수 있습니다pg_pltemplate그러나이 접근법은입니다 노아용으로 간주됩니다.

서버가 항목을 찾을 때pg_pltemplate지정된 언어에 대한 카탈로그 이름, 명령에 포함 된 경우에도 카탈로그 데이터를 사용합니다. 언어 매개 변수. 이 동작은 오래된 덤프의 로딩을 단순화합니다 오래된 정보가 포함될 가능성이있는 파일 언어 지원 기능.

일반적으로 사용자는를 가져야합니다.PostgreSQL등록하기위한 슈퍼 서서 권한 a 새로운 젠 토토. 그러나 데이터베이스의 소유자는 새로운 것을 등록 할 수 있습니다. 해당 데이터베이스 내의 젠 토토가에 나열된 경우PG_PLTEMPLATE카탈로그와 표시됩니다 데이터베이스 소유자가 생성 할 수 있습니다 (tmpldbacreate참). 기본값은 그 것입니다 신뢰할 수있는 젠 토토는 데이터베이스 소유자가 작성할 수 있지만 의 내용을 수정하여 수퍼 유행자에 의해 조정됩니다pg_pltemplate. 언어의 창조자 소유자가되어 나중에 떨어 뜨리거나 이름을 바꾸거나 할당 할 수 있습니다. 새로운 소유자에게.

젠 토토 생성 또는 교체의지 새 젠 토토를 만들거나 기존 정의를 대체하십시오. 젠 토토가 이미 존재하면 매개 변수가 업데이트됩니다 지정된 값에 따르면pg_pltemplate, 그러나 젠 토토 소유권 및 권한 설정은 변경되지 않으며 기존 기능이 변경되지 않습니다 젠 토토로 작성된 것은 여전히 ​​유효하다고 가정합니다. ~ 안에 생성을위한 정상적인 권한 요구 사항에 추가 젠 토토, 사용자는 기존의 수퍼 유저 또는 소유자 여야합니다. 젠 토토. 그만큼교체케이스는 주로입니다 젠 토토가 존재하는지 확인하는 데 사용됩니다. 만약 젠 토토는pg_pltemplate입력 그 다음에교체실제로 변하지 않습니다 비정상적인 경우를 제외하고 기존 정의에 관한 모든 것 어디서pg_pltemplateEntry Has 젠 토토가 만들어진 이후 수정되었습니다.

매개 변수

신뢰할 수있는

신뢰할 수있는젠 토토는 사용자가 할 데이터에 대한 액세스 권한을 부여하지 않습니다. 그렇지 않으면. 이 키 단어가 생략 된 경우 젠 토토 등록,PostgreSQLSuperUser 권한이 사용할 수 있습니다 새로운 기능을 만드는이 언어.

절차

이것은 소음 단어입니다.

이름

새로운 절차 언어의 이름. 이름이 있어야합니다 데이터베이스의 언어 중에서 독특합니다.

뒤로 호환성을 위해 이름을 동봉 할 수 있습니다 단일 따옴표.

핸들러 call_handler

Call_Handler이름입니다 호출 될 이전에 등록 된 기능 중 절차 적 언어의 기능을 실행하십시오. 전화 절차 적 언어에 대한 핸들러는 버전 1 통화 컨벤션과 함께 C와 같은 컴파일 된 언어 및 등록PostgreSQL논쟁과 반환Language_Handler유형, 자리 표시 자형 단순히 함수를 통화로 식별하는 데 사용됩니다. 매니저.

인라인 inline_handler

inline_handleris 이전에 등록 된 기능의 이름 익명 코드 블록 ( 실행하도록 요청do명령)이 젠 토토로. 그렇지 않은 경우inline_handler함수는입니다 지정된 언어는 익명 코드를 지원하지 않습니다 블록. 핸들러 함수는 유형의 하나의 인수를 취해야합니다내부do명령 내부 표현, 일반적으로 반환void. 핸들러의 반환 값은 다음과 같습니다 무시.

Validator Valfunction

Valfunction이름입니다 호출 될 이전에 등록 된 함수의 언어의 새로운 기능이 만들어지면 검증하기 위해 새로운 기능. 유효성 검사 기능이 지정되지 않은 경우 그러면 새 기능이 생성 될 때 확인되지 않습니다. 유효성 검사 기능은 유형의 하나의 인수를 가져와야합니다OID제작 된 기능은 일반적으로 반환됩니다void.

유효성 검사 기능은 일반적으로 다음을 검사합니다 구문 적 정확성을위한 기능 본문이지만 또한 할 수도 있습니다 예를 들어 기능의 다른 속성을보십시오. 젠 토토는 특정 인수 유형을 처리 할 수 ​​없습니다. 에게 오류 신호, 유효성 검사 기능은를 사용해야합니다.Ereport ()함수. 그만큼 함수의 반환 값은 무시됩니다.

the신뢰할 수있는옵션 및 지원 서버에 항목이있는 경우 함수 이름은 무시됩니다. 지정된 언어 이름pg_pltemplate.

노트

thePostgreSQL프로그램은 간단한 래퍼입니다 주위에젠 토토 생성명령. 그것 쉘 명령에서 절차 언어 설치를 완화합니다 선.

use배트맨 토토 : 문서 : 9.2 : 낙하 언어, 또는 더 낫지Droplang절차를 삭제하는 프로그램 언어.

시스템 카탈로그PG_LANGUAGE(참조사설 토토 사이트 : 문서 : 9.2 : PG_LANGUAGE) 현재 설치된 젠 토토에 대한 정보를 기록합니다. 또한,Createlang나열 할 옵션이 있습니다 설치된 젠 토토.

절차 언어로 기능을 만들려면 사용자는 그만큼usage젠 토토 특권. 에 의해 기본,usagepublic20577_20653

절차 언어는 개별 데이터베이스에 로컬입니다. 그러나 언어는에 설치할 수 있습니다.template1데이터베이스 후속 적으로 만들어진 모든 곳에서 자동으로 사용할 수 있습니다 데이터베이스.

호출 핸들러 함수, 인라인 핸들러 기능 (if 어떤), 그리고 유효성 검사 기능 (있는 경우)은 이미 존재해야합니다. 서버에는 언어에 대한 항목이 없습니다PG_PLTEMPLATE. 그러나 항목이있을 때 기능은 아직 존재할 필요가 없습니다. 그들은 자동으로됩니다 데이터베이스에없는 경우 정의됩니다. (이로 인해젠 토토 생성공유 된 경우 실패 젠 토토를 구현하는 라이브러리는 설치.)

inPostgreSQL이전 버전 7.3, 핸들러 기능을 반환으로 선언해야했습니다. 자리 표시 자형opaque가 아니라Language_Handler. 오래된 로딩을 지원합니다 덤프 파일,젠 토토 생성수락합니다 반환으로 선언 된 함수opaque, 그러나 통지를 발행하고 선언 된 기능을 변경합니다. 반환 유형Language_Handler.

예제

표준 절차를 만드는 선호하는 방법 언어는 단지 :

Language Plperl 만들기;

pg_pltemplate카탈로그, 이와 같은 시퀀스 필요하다 :

함수 만들기 plsample_call_handler () language_handler를 반환합니다
    '$ libdir/plsample'으로
    언어 C;
언어 plsample을 만듭니다
    핸들러 plsample_call_handler;

호환성

젠 토토 생성isPostgreSQL확장.