이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL: Tài liệu: 17: Tạo 토토 결과ôn 토토 결과ữ버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

메이저 토토 사이트 생성

이름

CREATE LANGUAGE — 다음에 대한 새로운 언어를 정의합니다. 기능
[신뢰할 수 있는] 절차적 메이저 토토 사이트 ' 생성메이저 토토 사이트명'
    핸들러call_handlerLANCOMPILER '코멘트'

입력

신뢰할 수 있음

신뢰할 수 있음다음을 지정합니다. 해당 언어에 대한 호출 처리기가 안전합니다. 즉, 그것은 제공합니다 권한이 없는 사용자는 액세스를 우회할 수 있는 기능이 없습니다. 제한. 등록 시 이 키워드를 생략한 경우 언어, 다음 사용자만포스트그레슈퍼유저 권한을 사용할 수 있습니다 이 메이저 토토 사이트는 새로운 기능(예: 'C')을 생성합니다. 메이저 토토 사이트).

메이저 토토 사이트명

새로운 절차적 언어의 이름. 언어 이름은 대소문자를 구분하지 않습니다. 절차적 언어는 불가능하다. 내장 언어 중 하나를 재정의합니다.포스트그레스.

처리자call_handler

call_handler이름은 호출될 이전에 등록된 함수의 PL 절차를 실행합니다.

댓글

랜컴파일러인수는 에 삽입될 문자열랜컴파일러새 속성pg_메이저 토토 사이트항목. 현재,포스트그레이 속성을 사용하지 않습니다 어떤 식으로든.

출력

만들기

메이저 토토 사이트가 성공적으로 완료되면 이 메시지가 반환됩니다. 생성되었습니다.

오류: PL 핸들러 함수기능 이름()는 그렇지 않습니다 존재한다

이 오류는 다음과 같은 경우에 반환됩니다.기능 이름()를 찾을 수 없습니다.

설명

사용 중메이저 토토 사이트 생성, 아포스트그레사용자는 새로운 메이저 토토 사이트를 등록할 수 있습니다 와 함께포스트그레. 이어서, 함수와 트리거 프로시저를 이 새로운 도구에서 정의할 수 있습니다. 언어. 사용자는 다음을 가지고 있어야 합니다.포스트그레수퍼유저 등록 권한 새로운 메이저 토토 사이트.

PL 핸들러 작성

절차적 메이저 토토 사이트에 대한 호출 핸들러를 작성해야 합니다. 'C'와 같은 컴파일러 메이저 토토 사이트로 등록되어 있습니다.포스트그레스함수로 사용 인수가 없고를 반환합니다.불투명type, 지정되지 않거나 정의되지 않은 유형에 대한 자리 표시자.. 이 호출 처리기가 직접 호출되는 것을 방지합니다. 쿼리의 함수입니다.

그러나 다음과 같은 경우 실제 호출에 인수가 제공되어야 합니다. 제공되는 언어로 된 PL 기능 또는 트리거 절차 핸들러가 실행됩니다.

  • 트리거 관리자에서 호출될 때 유일한 인수는 프로시저의 개체 ID입니다.pg_proc항목. 그 외 모든 정보는 트리거 관리자는 전역에서 찾을 수 있습니다.현재 트리거데이터포인터.

  • 함수 관리자에서 호출되면 인수는 다음과 같습니다. 프로시저의 개체 IDpg_proc항목, 인수 개수 PL 함수에 주어지면 a의 인수Fmgr값구조 및 포인터 함수가 호출자에게 반환 여부를 알려주는 부울 값은 SQL NULL 값입니다.

다음을 가져오는 것은 호출 처리기에 달려 있습니다.pg_proc항목을 입력하고 인수를 분석하며 호출된 프로시저의 반환 유형입니다. 의 AS 절함수 생성절차는 다음과 같습니다. 에서 찾았습니다.prosrc속성pg_proc테이블 항목. 이는 다음과 같을 수 있습니다. 절차적 언어 자체의 소스 텍스트(예: PL/Tcl), 파일에 대한 경로 이름 또는 자세한 내용은 핸들러를 호출하세요.

참고

사용함수 생성만들기 위해 기능.

사용메이저 토토 사이트 삭제절차를 삭제하려면 메이저 토토 사이트.

표 참조pg_메이저 토토 사이트용 추가 정보:

테이블 = pg_메이저 토토 사이트
+------------+---------------+-------+
|          필드 |          유형 | 길이|
+------------+---------------+-------+
| 란이름 | 이름 |    32 |
| 란컴파일러 | 텍스트 |   var |
+------------+---------------+-------+

lanname |lan컴파일러   
------+---------------
내부|해당 없음           
lisp |/usr/ucb/listzt
C |/bin/cc       
SQL |포스트그레스

제한사항

절차적 언어에 대한 호출 핸들러는 다음과 같아야 하기 때문에 에 등록됨포스트그레안에 'C' 메이저 토토 사이트, 모든 기능과 제한 사항을 상속합니다. 'C' 함수 중.

버그

현재 절차적 언어에 대한 정의는 다음과 같습니다. 생성된 후에는 변경될 수 있습니다.

사용법

이것은 'C'로 작성된 PL 핸들러의 템플릿입니다:

#include "executor/spi.h"
   #include "명령/trigger.h"
   #include "utils/elog.h"
   #include "fmgr.h" /* FmgrValues 구조체의 경우 */
   #include "access/heapam.h"
   #include "utils/syscache.h"
   #include "catalog/pg_proc.h"
   #include "catalog/pg_type.h"

   데이텀
   plsample_call_handler(
        오이드 프로이드,
        int 발음,
        FmgrValues *proargs,
        부울 *isNull)

        데이텀 복구;
        TriggerData *트리거데이터;

        if (CurrentTriggerData == NULL) 
             /*
              * 함수로 호출됨
              */

             회수 = ...
         그렇지 않으면 
             /*
              * 트리거 프로시저로 호출됨
              */
             trigdata = CurrentTriggerData;
             CurrentTriggerData = NULL;

             회수 = ...

        *isNull = 거짓;
        반환 회수;

대신 몇 천 줄의 코드만 추가하면 됩니다. PL 호출 핸들러를 완료하려면 점을 클릭하세요. 참조함수 생성컴파일 방법에 대한 정보 로드 가능한 모듈에 넣습니다.

다음 명령은 샘플 절차를 등록합니다 언어:

함수 생성 plsample_call_handler () 불투명하게 반환
    AS '/usr/local/pgsql/lib/plsample.so'
    언어 'C';

절차적 언어 'plsample' 생성
    핸들러 plsample_call_handler
    LANCOMPILER 'PL/샘플';

호환성

CREATE LANGUAGE는포스트그레스확장.

SQL92

없습니다메이저 토토 사이트 생성성명 에서SQL92.