¾�ΥС�������ʸ�� �� 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

Name

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

Synopsis

CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE langname
    HANDLER call_handler [ VALIDATOR valfunction ]

����

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

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

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

�ѥ�᡼��

TRUSTED

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

PROCEDURAL

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

langname

��������³�������̾���Ǥ�������̾����ʸ��/��ʸ���ζ��̤�����ޤ��󡣼�³������Ϥɤ�PostgreSQL���Ȥ߹��߸������񤭤��뤳�ȤϤǤ��ޤ���

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

HANDLER call_handler

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

VALIDATOR valfunction

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

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

����

CREATE LANGUAGE
���Υ�å������ϸ���κ������������������֤���ޤ���
ERROR:  PL handler function funcname() doesn't exist
���Υ��顼�ϡ��ؿ�funcname()�����Ĥ���ʤ������֤���ޤ���

����

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

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

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

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

pg_language �����ƥ५�������ϸ������ǥ��󥹥ȡ��뤵�줿��³������ξ����Ͽ���ޤ���

        Table "pg_language"
   Attribute   |   Type    | Modifier
---------------+-----------+----------
 lanname       | name      |
 lanispl       | boolean   |
 lanpltrusted  | boolean   |
 lanplcallfoid | oid       |
 lanvalidator  | oid       |
 lanacl        | aclitem[] |

   lanname   | lanispl | lanpltrusted | lanplcallfoid | lanvalidator | lanacl
-------------+---------+--------------+---------------+--------------+--------
 internal    | f       | f            |             0 |         2246 |
 c           | f       | f            |             0 |         2247 |
 sql         | f       | t            |             0 |         2248 | {=U}

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

��³���������Ѳ�ǽ�ˤ���ˤϡ��桼���� 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�γ�ĥ�Ǥ���

����

CREATE LANGUAGE ���ޥ�ɤ� PostgreSQL 6.3 �����ɲä���ޤ�����

��Ϣ����

createlang, CREATE FUNCTION, droplang, DROP LANGUAGE, GRANT, REVOKE, PostgreSQL �ץ�����ޥ�����