¾�ΥС�������ʸ�� �� 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 [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
    HANDLER call_handler [ VALIDATOR valfunction ]

����

PostgreSQL�桼���ϡ�CREATE LANGUAGE��Ȥäƿ�������³������� PostgreSQL �ǡ����١�������Ͽ���뤳�Ȥ��Ǥ��ޤ��� ���θ塢�ؿ��ȥȥꥬ�ץ���������Ϥ��ο���������������ǽ�ˤʤ�ޤ��� �桼���Ͽ������������Ͽ���뤿��ˤ�PostgreSQL�Υ����ѡ��桼�����¤���äƤ��ʤ���Ф����ޤ���

CREATE LANGUAGE �ϸ�ΨŪ�˸���̾�ȡ����θ���Ǻ������줿�ؿ��μ¹Ԥ���Ǥ���ĸƤӽФ��ϥ�ɥ���Ϣ�Ť��ޤ��� ����ƤӽФ��ϥ�ɥ�ˤĤ��ƤΤ��ܺ٤� ��33.3 �򻲾Ȥ��Ʋ�������

��³������ϳƥǡ����١����˶ɽ�Ū�ʤ�ΤǤ��뤳�Ȥ����դ��Ʋ������� �ǥե���Ȥ����ƤΥǡ����١����ǻ��ѤǤ�������������뤿��ˤϡ�template1 �ǡ����١����˥��󥹥ȡ��뤵��ʤ���Фʤ�ޤ���

�ѥ�᡼��

TRUSTED

TRUSTED �ϡ����θ���θƤӽФ��ϥ�ɥ餬 �����Ǥ��뤳�Ȥ���ꤷ�ޤ��� �Ĥޤꡢ���¤�����ʤ��桼���ˤϥ����������¤�̵�뤹�뵡ǽ�򲿤�Ϳ���ʤ��Ȥ������ȤǤ��� �⤷�������Ͽ����Ȥ��ˤ��Υ�����ɤ���ά�����ȡ�PostgreSQL�Υ����ѡ��桼�����¤���ĥ桼���Τߤ��������ؿ����뤿��ˤ��θ����Ȥ����Ȥ��Ǥ���褦�ˤʤ�ޤ���

PROCEDURAL

����ñ��ϥΥ����Ǥ���

name

��������³�������̾���Ǥ��� ����̾����ʸ��/��ʸ���ζ��̤�����ޤ��� ����̾���ϥǡ����١�����θ������ǰ�դǤʤ���Фʤ�ޤ���

�����ߴ��Τ��ᡢ����̾����ñ�������dz�뤳�Ȥ�Ǥ��ޤ���

HANDLER call_handler

call_handler�ϡ� ��������Ͽ����Ƥ����ؿ���̾���ǡ����μ�³������δؿ���¹Ԥ��뤿��˸ƤӽФ�����ΤǤ��� ��³�������ѤθƤӽФ��ϥ�ɥ�ϡ�C ����Τ褦�ʥ���ѥ������ǥС������ 1 �ƤӽФ��������Ѥ��ƺ�������������Ȥ�ʤ� language_handler �����֤��ؿ��Ȥ��ơ�PostgreSQL ����Ͽ����ʤ���Фʤ�ޤ��� language_handler ���ϡ�ñ�˴ؿ���ƤӽФ��ϥ�ɥ�Ȥ��Ƽ��̤���Τ˻��Ѥ���ץ졼���ۥ�����Ǥ���

VALIDATOR valfunction

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

�����Ѵؿ����̾�ؿ����Τ���ʸ�����������ɤ����򸡺����뤿��˻��Ѥ���ޤ��� ����������������Ǥʤ������Ȥ��Ф��θ��줬����ΰ����ǡ�����������Ǥ��ʤ��Ȥ��ä����ؿ���¾�Υץ��ѥƥ��⻲�Ȳ�ǽ�Ǥ��� ���顼���Τ餻��ˤϡ������Ѵؿ��� ereport() �ؿ�����Ѥ��Ƥ��������� �ؿ�������ͤ�̵�뤵��ޤ���

����

�̾盧�Υ��ޥ�ɤϥ桼����ľ�ܼ¹Ԥ����ΤǤϤ���ޤ��� PostgreSQL ����ʪ�˴ޤޤ���³������Ǥϡ�createlang ������ץȤ����Ѥ���ʤ���Фʤ�ޤ��� ��������ΤʸƤӽФ��ϥ�ɥ�Υ��󥹥ȡ����Ԥʤ��ޤ��� (createlang ������Ū��CREATE LANGUAGE ��ƤӽФ��ޤ���)

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

�������ؿ����������ˤϡ�CREATE FUNCTION ���ޥ�ɤ���Ѥ��Ʋ�������

��³�������������ˤϡ�DROP LANGUAGE ����Ѥ��Ʋ������� droplang ������ץȤ���Ѥ��������ɤ��Ǥ��礦��

pg_language �����ƥ५������(��43.18����)�ϸ������ǥ��󥹥ȡ��뤵�줿��³������ξ����Ͽ���ޤ��� �ޤ���createlang�ˤϡ����󥹥ȡ���Ѥ߸���ΰ�������Ϥ��륪�ץ���󤬤���ޤ���

���¤�����������Ѥߤμ�³�������������ѹ����뤳�ȤϤǤ��ޤ���

��³���������Ѳ�ǽ�ˤ���ˤϡ��桼���� USAGE ���¤�Ϳ����ɬ�פ�����ޤ��� ���θ��줬����Ǥ��� (trusted)��ʬ���äƤ�����ϡ�createlang �ץ����������桼���˼�ưŪ�˸��¤�Ϳ���ޤ���

��

�ʲ���³���Ƽ¹Ԥ���� 2 ���ޥ�ɤϿ�������³������ȴ�Ϣ����ƤӽФ��ϥ�ɥ����Ͽ���ޤ���

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