CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE langname HANDLER call_handler [ VALIDATOR valfunction ]
PostgreSQL�桼���ϡ�CREATE LANGUAGE��Ȥäƿ���������� PostgreSQL����Ͽ���뤳�Ȥ��Ǥ��ޤ�������ˤ�ꡢ�ؿ��ȥȥꥬ�ץ���������Ϥ��ο���������������ǽ�ˤʤ�ޤ����桼���Ͽ������������Ͽ���뤿��ˤ�PostgreSQL�Υ����ѡ��桼�����¤���äƤ��ʤ���Ф����ޤ���
CREATE LANGUAGE �ϸ�ΨŪ�˸���̾�ȡ����θ���Ǻ������줿�ؿ��μ¹Ԥ���Ǥ���ĸƤӽФ��ϥ�ɥ���Ϣ�Ť��ޤ�������ƤӽФ��ϥ�ɥ�ˤĤ��ƤΤ��ܺ٤� �ץ�����ޥ����� �Ȥ��Ʋ�������
��³������ϳƥǡ����١����˶ɽ�Ū�ʤ�ΤǤ��뤳�Ȥ����դ��Ʋ��������ǥե���Ȥ����ƤΥǡ����١����ǻ��ѤǤ�������������뤿��ˤϡ�template1 �ǡ����١����˥��ȡ��뤵��ʤ���Фʤ�ޤ���
TRUSTED �ϡ����θ���θƤӽФ��ϥ�ɥ餬 �����Ǥ��뤳�Ȥ���ꤷ�ޤ����Ĥޤꡢ���¤�����ʤ��桼���ˤϥ����������¤�̵�뤹�뵡ǽ��Ϳ���ʤ��Ȥ������ȤǤ��� �⤷�������Ͽ����Ȥ��ˤ��Υ�����ɤ���ά�����ȡ�PostgreSQL�Υ����ѡ��桼�����¤���ĥ桼���Τߤ��������ؿ����뤿��ˤ��θ����Ȥ����Ȥ��Ǥ���褦�ˤʤ�ޤ���
����ñ��ϥΥ����Ǥ���
��������³�������̾���Ǥ�������̾����ʸ��/��ʸ���ζ��̤�����ޤ���³������Ϥɤ�PostgreSQL���Ȥ߹��߸��������뤳�ȤϤǤ��ޤ���
�����ߴ��Τ��ᡢ����̾����ñ�������dz�뤳�Ȥ�Ǥ��ޤ���
call_handler�ϡ� ��������Ͽ����Ƥ����ؿ���̾���ǡ����μ�³������δؿ� ��¹Ԥ��뤿��˸ƤӽФ�����ΤǤ��� ��³�������ѤθƤӽФ��ϥ�ɥ�ϡ�C ����Τ褦�ʥ���ѥ������ǥС������ 1 �ƤӽФ��������Ѥ��ƺ�������������Ȥ�ʤ� language_handler �����֤��ؿ��Ȥ��ơ�PostgreSQL ����Ͽ����ʤ���Фʤ�ޤ���language_handler ���ϡ�ñ�˴ؿ���ƤӽФ��ϥ�ɥ�Ȥ��Ƽ��̤���Τ˻��Ѥ���ץ졼���ۥ�����Ǥ���
valfunction �ϡ�������Ͽ�Ѥߤδؿ���̾���ǡ��������ؿ������θ���Ǻ������줿��硢���ο������ؿ��ڤ��뤿��˸ƤӽФ���ޤ��� �����Ѵؿ������ꤵ��Ƥ��ʤ���硢�������ؿ��Ϻ������˥����å�����ޤ��� �ޤ��������Ѵؿ��ϡ�oid ���ΰ����� 1 �ļ��ɬ�פ�����ޤ������ΰ����ϡ����������ؿ��� OID �ˤʤꡢ�̾� void �����֤��ޤ���
�����Ѵؿ����̾�ؿ����Τ���ʸ�����������ɤ��������뤿��˻��Ѥ���ޤ�������������������Ǥʤ������Ȥ��Ф��θ��줬����ΰ����ǡ�����������Ǥ��ʤ��Ȥ��ä����ؿ���¾�Υץ��ѥƥ��⻲�Ȳ�ǽ�Ǥ��� ���顼���Τ餻��ˤϡ������Ѵؿ��� elog() �ؿ�����Ѥ��Ƥ��������� �ؿ�������ͤ�̵�뤵��ޤ���
�̾盧�Υ��ޥ�ɤϥ桼����ľ�ܼ¹Ԥ����ΤǤϤ���ޤ���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;
createlang, CREATE FUNCTION, droplang, DROP LANGUAGE, GRANT, REVOKE, PostgreSQL �ץ�����ޥ�����