이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL: Tài liệu: 17: Tạo 토토 결과ôn 토토 결과ữ버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

메이저 토토 사이트 생성

이름

메이저 토토 사이트 생성 - 새로운 언어를 정의합니다 기능
[신뢰할 수있는] 절차 메이저 토토 사이트 만들기langname'
    매니저call_handlerLancompiler '댓글'

입력

신뢰할 수있는

신뢰할 수있는메이저 토토 사이트에 대한 전화 처리기는 안전합니다. 즉, 제공합니다 액세스를 우회 할 수있는 기능이없는 사용자가 없습니다 제한. 등록 할 때이 키워드가 생략 된 경우 메이저 토토 사이트, 사용자 만PostgresSuperuser 권한이 사용할 수 있습니다 이 언어는 새로운 기능을 만들기위한 ( 'C'와 같은 언어).

langname

새로운 절차 언어의 이름. 언어 이름은 사례 둔감합니다. 절차 적 언어는 할 수 없습니다 내장 된 언어 중 하나를 무시하십시오Postgres.

핸들러call_handler

call_handler이름입니다 호출 될 이전에 등록 된 기능 중 PL 절차 실행.

댓글

Lancompiler인수입니다 에 삽입 될 문자열Lancompiler새로운 속성PG_LANGUAGE입력. 현재,Postgres이 속성을 사용하지 않습니다 어떤 식 으로든.

출력

Create

메이저 토토 사이트가 성공적으로 있으면이 메시지가 반환됩니다 생성.

오류 : PL 핸들러 기능funcName()는 그렇지 않습니다 존재하다

함수가 있으면이 오류가 반환됩니다funcName()가 찾을 수 없습니다.

설명

사용메이저 토토 사이트 생성, aPostgres사용자는 새 언어를 등록 할 수 있습니다 와 함께Postgres. 그후, 이 새로운 경우 기능 및 트리거 절차를 정의 할 수 있습니다. 언어. 사용자는가 있어야합니다.Postgres등록하기위한 슈퍼 서서 권한 a 새로운 메이저 토토 사이트.

PL 핸들러 작성

절차 언어에 대한 호출 핸들러를 작성해야합니다. 'C'와 같은 컴파일러 언어로Postgres기능으로 논쟁이없고 반환opaque불특정 또는 정의되지 않은 유형의 자리 표시자인 타입 호출 핸들러가 직접 호출되는 것을 방지합니다. 쿼리에서 기능.

그러나 실제 전화에 인수를 제공해야합니다. 제공되는 언어로 된 PL 기능 또는 트리거 절차 핸들러는 실행됩니다.

  • 트리거 관리자로부터 호출했을 때 유일한 인수 프로 시저의 객체 IDPG_PROC입력. 다른 모든 정보 트리거 관리자는 글로벌에서 발견됩니다CurrentTriggerData포인터.

  • 함수 관리자에서 호출하면 인수가 있습니다 프로 시저의 객체 IDPG_PROC입력, 인수 수 PL 기능에 주어진 A의 인수.fmgrvalues구조 및 포인터에 대한 포인터 부울이 함수가 발신자에게 반환되는지 알려주는 곳 값은 SQL NULL 값입니다.

전화 핸들러에 달려 있습니다.PG_PROC입력 및 인수를 분석합니다 호출 된 절차의 반환 유형. 의 AS 절함수 만들기절차의 것입니다 에서 발견prosrc속성PG_PROC테이블 입력. 이것은 일 수 있습니다 절차 언어 자체의 소스 텍스트 (예 : pl/tcl), 파일에 대한 pathname 또는 핸들러에게 자세히해야 할 일을 호출하십시오.

노트

use함수 만들기생성 a 기능.

use메이저 토토 사이트 삭제절차를 삭제합니다 메이저 토토 사이트.

표 참조PG_LANGUAGE추가 정보 :

테이블 = pg_language
+------------------------------------------------------------+
|          필드 |          유형 | 길이 |
+------------------------------------------------------------+
| lanname | 이름 |    32 |
| 랜 컴필라 | 텍스트 |   var |
+------------------------------------------------------------+

Lanname | Lancompiler   
--------+-------------
내부 | N/A           
lisp |/usr/ucb/liszt
C |/bin/cc       
SQL | postgres

제한

절차 언어에 대한 호출 핸들러는 등록Postgres'C'언어는 모든 기능과 제한을 물려받습니다 'C'기능의.

버그

현재, 절차 적 메이저 토토 사이트에 대한 정의는 할 수 없습니다 그들이 만들어지면 변경됩니다.

usage

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

#include "executor/spi.h"
   #include "명령/trigger.h"
   #include "utils/elog.h"
   #include "fmgr.h" / * fmgrvalues ​​struct * /
   #include "Access/Heapam.h"
   #include "utils/syscache.h"
   #include "카탈로그/PG_PROC.H"
   #include "카탈로그/pg_type.h"

   자료
   plsample_call_handler (
        Oid Prooid,
        int pronargs,
        fmgrvalues ​​*proargs,
        bool *isnull)

        Datum Retval;
        TriggerData *trigdata;

        if (currentTriggerData == null) 
             /*
              * 함수로 호출됩니다
              */

             retval = ...
         또 다른 
             /*
              * 트리거 절차라고합니다
              */
             trigdata = currentTriggerData;
             currentTriggerData = null;

             retval = ...

        *isnull = false;
        retval 리턴;

수천 줄의 코드 만 추가해야합니다. PL 호출 핸들러를 완료하는 점. 보다함수 생성컴파일 방법에 대한 정보 로드 가능한 모듈로.

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

함수 만들기 plsample_call_handler ()는 불투명합니다
    '/usr/local/pgsql/lib/plsample.so'로
    언어 'c';

절차 언어 'plsample'만들기
    핸들러 plsample_call_handler
    Lancompiler 'pl/sample';

호환성

메이저 토토 사이트 생성은 A입니다.Postgres확장.

SQL92

없음메이저 토토 사이트 생성진술 안에SQL92.