¾�ΥС�������ʸ�� �� 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

CREATE LANGUAGE

名前

CREATE LANGUAGE -- ��������³��������������

概要

CREATE [ OR REPLACE ] [ PROCEDURAL ] LANGUAGE name
CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
    HANDLER call_handler [ INLINE inline_handler ] [ VALIDATOR valfunction ]

����

CREATE LANGUAGE�Ͽ�������³�������PostgreSQL�ǡ����١�������Ͽ���ޤ��� ����ˤ�ꡢ�ؿ��ȥȥꥬ�ץ���������򿷤������������Ǥ���褦�ˤʤ�ޤ���

注意: PostgreSQL 9.1���顢�ۤȤ�ɤμ�³�������"��ĥ"�Ȥ��ƤޤȤ���ޤ����� �������ä�CREATE LANGUAGE�ǤϤʤ�CREATE EXTENSION����Ѥ��ƥ��󥹥ȡ��뤹�٤��Ǥ��� CREATE LANGUAGE��ľ�ܻ��Ѥ��뤳�Ȥϳ�ĥ���󥹥ȡ����ѥ�����ץȤ˸��ꤵ��ʤ���Фʤ�ޤ��� �����餯���åץ��졼�ɤη��"�भ������"���줬�ǡ����١������¸�ߤ����硢CREATE EXTENSION langname FROM unpackaged���Ѥ��Ƴ�ĥ���Ѵ����뤳�Ȥ��Ǥ��ޤ���

CREATE LANGUAGE�ϡ�����̾�Ȥ��θ���Ǻ������줿�ؿ��μ¹Ԥ���Ǥ����ĥϥ�ɥ�ؿ��򡢸�ΨŪ�˴�Ϣ�դ��ޤ��� ����ϥ�ɥ�ˤĤ��Ƥξܺ٤ϡ�第49章�򻲾Ȥ��Ƥ���������

CREATE LANGUAGE���ޥ�ɤˤ�2����η���������ޤ��� �ǽ�η����ϡ��桼����ɬ�פʸ����̾���Τߤ�ñ�˻��ꤹ���ΤǤ��� ���ξ�硢PostgreSQL�����Ф�pg_pltemplate�����ƥ५�������򻲾Ȥ����������ѥ�᡼������ꤷ�ޤ��� 2���ܤη����Ǥϡ��桼���ϸ���̾��¾�˸���Υѥ�᡼�������Ϥ��ޤ��� ���η����ǡ�pg_pltemplate���������Ƥ��ʤ������������뤳�Ȥ��Ǥ��ޤ��������μ�ˡ���Ѵ�ͽ��Ǥ���

���ꤵ�줿����̾���б�����pg_pltemplate���������ι��ܤ򥵡��Ф����Ĥ���ȡ����ޥ�ɤ˸���Υѥ�᡼�����ޤޤ�Ƥ����Ȥ��Ƥ⥫�������Υǡ�������Ѥ��ޤ��� ����ư��ˤ�ꡢ�Ť��������Υ��ݡ��ȴؿ��˴ؤ�������ޤࡢ�Ť�����ץե����뤫����ɤ߹��ߤ���ñ�ˤʤ�ޤ���

�̾�������������Ͽ����ˤϡ��桼����PostgreSQL�Υ����ѡ��桼�����¤�����ʤ���Фʤ�ޤ��� �����������줬pg_pltemplate����������˵��ܤ��졢�ǡ����١�����ͭ�Ԥˤ�������ǽ����tmpldbacreate�����ˤ��դ��Ƥ���С��ǡ����١�����ͭ�ԤϤ��Υǡ����١�����˿������������Ͽ���뤳�Ȥ��Ǥ��ޤ��� �ǥե���Ȥǡ����ꤵ�줿����ϥǡ����١�����ͭ�Ԥˤ��������Ǥ��ޤ��� ������������ϥ����ѡ��桼���ˤ��pg_pltemplate���ѹ��ˤ��Ĵ���Ǥ��ޤ��� ��������Ԥ�����ν�ͭ�Ԥˤʤꡢ��Ǻ�������ꡢ̾�����Ѥ����ꡢ�̤ν�ͭ�Ԥ������Ƥ��ꤹ�뤳�Ȥ��Ǥ��ޤ���

CREATE OR REPLACE LANGUAGE�Ͽ����������������ޤ��ϡ���¸��������֤������ޤ��� ���줬���Ǥ�¸�ߤ����硢�ѥ�᡼���ϻ��ꤵ�줿�ͤޤ���pg_pltemplate������Ф��줿�ͤˤ������äƹ�������ޤ���������ν�ͭ���ȸ��¤˴ؤ���������ѹ�����ޤ��� �ޤ������θ���Ǻ������줿��¸�δؿ�������Ȥ���ͭ���Ǥ����ΤȲ��ꤵ��ޤ��� ������������ݤ��̾��׵ᤵ��븢�¤˲ä����桼���ϥ����ѡ��桼���ޤ��ϴ�¸����ν�ͭ�ԤǤʤ���Фʤ�ޤ��� REPLACE�ξ�硢��˸��줬¸�ߤ��뤳�Ȥ��ǧ���뤿��˻��Ѥ��뤳�Ȥ��̣���ޤ��� ���θ��줬pg_pltemplate���ܤ���ľ�硢REPLACE�ϴ�¸�������ºݤˤϤޤä����ѹ����ޤ��� �����������줬��������Ƥ���pg_pltemplate���ܤ��ѹ����줿�̾�ǤϤʤ������㳰�Ǥ���

�ѥ�᡼��

TRUSTED

TRUSTED�ϡ�¾����ˡ�Ǥϥ桼�������������Ǥ��ʤ��ǡ������Ф��Ƥϡ����θ���ǤΥ���������������ʤ����Ȥ���ꤷ�ޤ��� �������Ͽ���ˤ��Υ�����ɤ��ά����ȡ�PostgreSQL�Υ����ѡ��桼�����¤���ĥ桼���Τߤ������θ����Ȥäƿ������ؿ������褦�ˤʤ�ޤ���

PROCEDURAL

����ϥΥ�����ɤǤ���

name

��������³�������̾���Ǥ��� ����̾���ϥǡ����١����θ������ǰ�դǤʤ���Фʤ�ޤ���

�����ߴ����ݻ����뤿�ᡢ����̾����ñ�������ǰϤळ�Ȥ�Ǥ��ޤ���

HANDLER call_handler

call_handler�ϼ�³������δؿ���¹Ԥ��뤿��˸ƤӽФ����ؿ���̾���ǡ���������Ͽ���Ƥ���ɬ�פ�����ޤ��� ���Υϥ�ɥ�ϡ�Version-1�ƤӽФ������§�äơ�C����Τ褦�ʥ���ѥ������ǽ񤫤�Ƥ���ɬ�פ�����ޤ����ޤ����������餺language_handler�����֤��ؿ��Ȥ��ơ�PostgreSQL����Ͽ����Ƥ��ʤ���Фʤ�ޤ��� language_handler���ϡ�ñ�˴ؿ���ƤӽФ��ϥ�ɥ�Ȥ��Ƽ��̤���Τ˻��Ѥ���ץ졼���ۥ�����Ǥ���

INLINE inline_handler

inline_handler�Ϥ��θ����̵̾�����ɥ֥��å���¹ԡ�DO���ޥ�ɡˤ��뤿��˸ƤӽФ���롢��������Ͽ���줿�ؿ���̾���Ǥ��� inline_handler�ؿ������ꤵ��ʤ���硢���θ���Ǥ�̵̾�����ɥ֥��å��򥵥ݡ��Ȥ��ޤ��� ���Υϥ�ɥ�ؿ��ϡ�DO���ޥ�ɤ�����ɽ���Ȥʤ�internal���ΰ�����1�ļ��ʤ���Фʤ餺���ޤ����̾�void���֤��ޤ��� �ϥ�ɥ������ͤ�̵�뤵��ޤ���

VALIDATOR valfunction

valfunction�ϡ���������Ͽ���줿�����Ѵؿ���̾���Ǥ����������ؿ�����������Ǻ������줿��硢���δؿ��򸡾ڤ��뤿��˸ƤӽФ���ޤ��� �����Ѵؿ������ꤵ��Ƥ��ʤ���硢�������ؿ��Ϻ������˥����å�����ޤ��� �����Ѵؿ��ϡ�oid���ΰ�����1�ļ��ɬ�פ�����ޤ��� ���ΰ����Ϻ��������ؿ���OID�ˤʤ�ޤ��� �ޤ����̾�void�����֤��ޤ���

�����Ѵؿ��ϡ��̾�ؿ����Τ���ʸ�����������ɤ����򸡺����뤿��˻��Ѥ���ޤ��� ����������������Ǥʤ����ؿ��Υץ��ѥƥ��⸡����ǽ�Ǥ����㤨�С����θ��줬�����Ǥ��ʤ�����Υǡ������������˴ޤޤ�Ƥ��ʤ����ʤɤ������å��Ǥ��ޤ��� ���顼�����Τ���ˤϡ������Ѵؿ���ereport()�ؿ�����Ѥ��٤��Ǥ��� �ؿ�������ͤ�̵�뤵��ޤ���

�����Ф����ꤷ������̾���б�����pg_pltemplate�ι��ܤ򸫤Ĥ�����硢TRUSTED���ץ����ȥ��ݡ��ȴؿ�̾��̵�뤵��ޤ���

����

createlang��CREATE LANGUAGE���Ф����ñ�ʥ�åѥץ������Ǥ��� �������Ѥ��ƴ�ñ�˥����륳�ޥ�ɥ饤�󤫤��³������򥤥󥹥ȡ��뤹�뤳�Ȥ��Ǥ��ޤ���

��³�������������ˤϡ�DROP LANGUAGE���ޤ���droplang����Ѥ��Ƥ��������ʸ�Ԥ򴫤�ޤ��ˡ�

�����ƥ५������pg_language�� 項45.27���ȡˤˤϡ����ߥ��󥹥ȡ��뤵��Ƥ������˴ؤ�����󤬵�Ͽ����Ƥ��ޤ��� �ޤ���createlang�ˤϥ��󥹥ȡ��뤵�줿�������󤹤륪�ץ���󤬤���ޤ���

��³������Ǵؿ����������ˤϡ��桼���Ϥ��θ�����Ф���USAGE���¤�����ʤ���Фʤ�ޤ��� �ǥե���ȤǤϡ����ꤵ�줿�����USAGE��PUBLIC�ˡʤĤޤ������ˡ���Ϳ����Ƥ��ޤ��� �����ɬ�פ˱����Ƽ��������Ȥ��Ǥ��ޤ���

��³������ϳƥǡ����١����˶ɽ�Ū�Ǥ��� �������������template1�ǡ����١����˥��󥹥ȡ��뤹�뤳�Ȥ��Ǥ��ޤ��� ���ξ�硢���θ�˺������줿���٤ƤΥǡ����١����Ǽ�ưŪ�ˤ��θ���ϻ��ѤǤ���褦�ˤʤ�ޤ���

�ƤӽФ��ϥ�ɥ�ؿ��ȥ���饤��ϥ�ɥ�ؿ��ʤ⤷����Сˡ����ڴؿ��ʤ⤷����Сˤϡ������Ф�pg_pltemplate��ˤ��θ���˴ؤ�����ܤ���äƤ��ʤ����ˤϡ�¸�ߤ��ʤ���Фʤ�ޤ��� �����������ι��ܤ����ä��Ȥ��Ƥ⡢�ؿ������Ǥ�¸�ߤ��Ƥ���Ȥϸ¤�ޤ��� �ǡ����١������¸�ߤ��Ƥ��ʤ���м�ưŪ���������ޤ��� �ʸ����������붦ͭ�饤�֥�꤬���󥹥ȥ졼���������ѤǤ��ʤ���硢����ˤ��CREATE LANGUAGE�����Ԥ����ǽ��������ޤ�����

PostgreSQL 7.3������ΥС������Ǥϡ��ϥ�ɥ�ؿ����֤��ץ졼���ۥ������language_handler���ǤϤʤ�opaque�����������ɬ�פ�����ޤ����� �Ť�����ץե�����Υ����ɤ򥵥ݡ��Ȥ��뤿��ˡ�CREATE LANGUAGE��opaque�����֤���������줿�ؿ����������ޤ��� �����������դ�¥����å�������ɽ������������줿�ؿ�������ͷ���language_handler���Ѵ����ޤ���

��

ɸ��Ū�ʼ�³��������������侩��ˡ��ñ�˰ʲ��Τ褦�˹Ԥ����ȤǤ���

CREATE LANGUAGE plperl;

pg_pltemplate�����������¸�ߤ��ʤ�����Ǥϡ��ʲ��Τ褦�ʽ�����ɬ�פǤ���

CREATE FUNCTION plsample_call_handler() RETURNS language_handler
    AS '$libdir/plsample'
    LANGUAGE C;
CREATE LANGUAGE plsample
    HANDLER plsample_call_handler;

�ߴ���

CREATE LANGUAGE��PostgreSQL�γ�ĥ�Ǥ���

��Ϣ����

ALTER LANGUAGE, CREATE FUNCTION, DROP LANGUAGE, GRANT, REVOKE, createlang, droplang