젠 토토 : 문서 : 9.6 : 젠 토토 | |||
---|---|---|---|
PostgreSQL : 문서 : 9.6 : 색인 범퍼카 토토 | 토토 사이트 순위 PostgreSQL : 문서 : 9.6 : SQL 명령 | PostgreSQL : 문서 : 9.6 : 토토 사이트 순위 된보기 생성 |
[또는 교체] [절차] 토토 꽁 머니 생성이름생성 [또는 교체] [신뢰할 수있는] [절차] 토토 꽁 머니이름핸들러call_handler[inlineinline_handler] [Validatorvalfunction]
토토 꽁 머니 생성a에 새로운 절차 토토 꽁 머니를 등록합니다PostgreSQL데이터베이스. 결과적으로 기능과 트리거 절차는이 새로운 토토 꽁 머니로 정의 될 수 있습니다.
참고 :PostgreSQL9.1, 대부분의 절차 적 언어는"확장"이므로를 설치해야합니다.PostgreSQL : 문서 : 9.6 : 토토 베이 생성not토토 꽁 머니 생성. 직접 사용토토 꽁 머니 생성이제 확장 설치 스크립트에 국한되어야합니다. 당신이있는 경우"베어"데이터베이스의 토토 꽁 머니, 아마도 업그레이드의 결과로를 사용하여 확장으로 변환 할 수 있습니다.확장 생성langname포장되지 않은.
토토 꽁 머니 생성언어 이름을 언어로 작성된 함수를 실행하는 책임있는 핸들러 함수와 효과적으로 연결합니다. 참조PostgreSQL : 문서 : 9.6 : 절차 롤 토토 핸들러 작성토토 꽁 머니 처리기에 대한 자세한 내용은
두 가지 형태의토토 꽁 머니 생성명령. 첫 번째 형태에서 사용자는 원하는 언어의 이름 만 제공합니다.PostgreSQL서버 상담PostgreSQL : 문서시스템 카탈로그가 올바른 매개 변수를 결정합니다. 두 번째 형태에서 사용자는 언어 이름과 함께 언어 매개 변수를 제공합니다. 두 번째 양식은 정의되지 않은 언어를 만드는 데 사용될 수 있습니다.PG_PLTEMPLATE, 그러나이 접근법은 쓸모없는 것으로 간주됩니다.
서버가 항목을 찾을 때pg_pltemplate지정된 언어 이름에 대한 카탈로그는 명령에 언어 매개 변수가 포함되어 있더라도 카탈로그 데이터를 사용합니다. 이 동작은 언어 지원 기능에 대한 오래된 정보를 포함 할 수있는 오래된 덤프 파일의로드를 단순화합니다.
일반적으로 사용자는를 가져야합니다.PostgreSQL새 토토 꽁 머니를 등록하는 슈퍼 서서 권한. 그러나 데이터베이스의 소유자는 토토 꽁 머니가에 나열된 경우 해당 데이터베이스에 새 토토 꽁 머니를 등록 할 수 있습니다.pg_pltemplate카탈로그는 데이터베이스 소유자가 생성 할 수있는 것으로 표시됩니다 (TMPLDBACREATE참). 기본값은 신뢰할 수있는 토토 꽁 머니가 데이터베이스 소유자가 작성할 수 있지만을 수정하여 슈퍼 사용자가 조정할 수 있다는 것입니다.PG_PLTEMPLATE. 언어의 제작자는 소유자가되어 나중에 그것을 떨어 뜨리거나 이름을 바꾸거나 새 소유자에게 할당 할 수 있습니다.
토토 꽁 머니 생성 또는 교체새 토토 꽁 머니를 만들거나 기존 정의를 대체합니다. 토토 꽁 머니가 이미 존재하는 경우 매개 변수는 지정된 값에 따라 업데이트됩니다.pg_pltemplate그러나 언어의 소유권 및 권한 설정은 변경되지 않으며 언어로 작성된 기존 기능은 여전히 유효하다고 가정합니다. 토토 꽁 머니 생성을위한 일반적인 권한 요구 사항 외에도 사용자는 기존 언어의 슈퍼업자 또는 소유자 여야합니다. 그만큼교체케이스는 주로 토토 꽁 머니가 존재하는지 확인하는 데 사용됩니다. 토토 꽁 머니에 A가있는 경우PG_PLTEMPLATEEntry교체비정상적인 경우를 제외하고는 기존 정의에 대해 실제로 아무것도 변경하지 않습니다pg_pltemplate토토 꽁 머니가 만들어진 이후 입력이 수정되었습니다.
신뢰할 수있는토토 꽁 머니가 사용자가 가지고 있지 않은 데이터에 대한 액세스 권한을 부여하지 않도록 지정합니다. 토토 꽁 머니를 등록 할 때이 키 단어가 생략되면 사용자 만PostgreSQLSuperuser Privilege는이 언어를 사용하여 새로운 기능을 만들 수 있습니다.
이것은 소음 단어입니다.
새로운 절차 언어의 이름. 이름은 데이터베이스의 언어 중에서 고유해야합니다.
뒤로 호환성의 경우 이름은 단일 따옴표로 둘러싸여 있습니다.
call_handler는 절차 언어의 기능을 실행하기 위해 호출 될 이전에 등록 된 함수의 이름입니다. 절차 언어에 대한 통화 핸들러는 버전 1 통화 컨벤션과 함께 C와 같은 편집 된 언어로 작성되어PostgreSQL인수를 취하지 않고 반환하는 함수로서Language_Handler유형, 유형, 단순히 호출 핸들러로 기능을 식별하는 데 사용되는 자리 표시 자 유형.
inline_handler익명 코드 블록 (를 실행하도록 호출되는 이전에 등록 된 함수의 이름입니다.토토 꽁 머니 : 문서 : 9.6 : do명령)이 토토 꽁 머니로. 그렇지 않은 경우inline_handler함수가 지정되고 언어는 익명 코드 블록을 지원하지 않습니다. 핸들러 함수는 유형의 하나의 인수를 취해야합니다내부do명령의 내부 표현, 일반적으로 반환void. 핸들러의 반환 값은 무시됩니다.
Valfunction새 기능을 검증하기 위해 언어의 새 함수가 생성 될 때 호출 될 이전에 등록 된 함수의 이름입니다. 유효성 검사 기능이 지정되지 않으면 새 기능이 생성 될 때 확인되지 않습니다. 유효성 검사 기능은 유형의 하나의 인수를 가져와야합니다OID, 이것은 창작 된 기능의 OID가 될 것이며 일반적으로 반환됩니다void.
Validator 함수는 일반적으로 기능 본문에 구문 적 정확성을 검사하지만 언어가 특정 인수 유형을 처리 할 수없는 경우 기능의 다른 속성을 볼 수도 있습니다. 오류를 표시하려면 유효성 검사 기능이를 사용해야합니다.Ereport ()
함수. 함수의 반환 값은 무시됩니다.
the신뢰할 수있는옵션 및 지원 함수 이름은 서버에 지정된 언어 이름에 대한 항목이있는 경우pg_pltemplate.
thePostgreSQL프로그램은 간단한 래퍼입니다토토 꽁 머니 생성명령. Shell Command Line에서 절차 언어 설치가 완화됩니다.
usePostgreSQL : 문서 : 9.6 : 토토 삭제또는 더 나은Droplang프로그램, 절차 언어를 삭제하는 프로그램.
시스템 카탈로그PG_LANGUAGE
(참조토토 커뮤니티 : 문서 : 9.6 : PG_LANGUAGE) 현재 설치된 언어에 대한 정보를 기록합니다. 또한,Createlang설치된 토토 꽁 머니를 나열하는 옵션이 있습니다.
절차 언어로 기능을 만들려면 사용자에게는가 있어야합니다.usage토토 꽁 머니 특권. 기본적으로usagepublic19608_19682
절차 언어는 개별 데이터베이스에 로컬입니다. 그러나 언어는에 설치할 수 있습니다.Template1데이터베이스, 이로 인해 모든 후속 데이터베이스에서 자동으로 사용할 수 있습니다.
서버에 언어에 대한 항목이없는 경우 콜 핸들러 기능, 인라인 처리기 기능 (있는 경우 인라인 처리기 기능 및 유효성 검사 기능)이 이미 존재해야합니다PG_PLTEMPLATE. 그러나 항목이있을 때, 기능은 아직 존재할 필요가 없습니다. 데이터베이스에 없으면 자동으로 정의됩니다. (이로 인해토토 꽁 머니 생성실패, 토토 꽁 머니를 구현하는 공유 라이브러리가 설치 중에 사용할 수없는 경우.)
inPostgreSQL7.3 이전 버전에서는 핸들러 기능을 자리 표시 자 유형을 반환하도록 선언해야했습니다opaque가 아니라Language_Handler. 오래된 덤프 파일의로드를 지원하려면토토 꽁 머니 생성반환으로 선언 된 함수를 수락합니다opaque, 그러나 통지를 발행하고 함수의 선언 된 반환 유형을로 변경합니다.Language_Handler.
표준 절차 언어를 만드는 선호하는 방법은 다음과 같습니다.
토토 꽁 머니 생성 plperl;
PG_PLTEMPLATE카탈로그, 이와 같은 시퀀스가 필요하다 :
함수 만들기 plsample_call_handler () language_handler를 반환합니다 '$ libdir/plsample'으로 언어 C; 언어 plsample을 만듭니다 핸들러 plsample_call_handler;