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�ϡ�¾����ˡ�Ǥϥ桼�������������Ǥ��ʤ��ǡ������Ф��Ƥϡ����θ���ǤΥ���������������ʤ����Ȥ���ꤷ�ޤ��� �������Ͽ���ˤ��Υ�����ɤ��ά����ȡ�PostgreSQL�Υ����ѡ��桼�����¤���ĥ桼���Τߤ������θ����Ȥäƿ������ؿ������褦�ˤʤ�ޤ���
����ϥΥ�����ɤǤ���
��������³�������̾���Ǥ��� ����̾���ϥǡ����١����θ������ǰ�դǤʤ���Фʤ�ޤ���
�����ߴ����ݻ����뤿�ᡢ����̾����ñ�������ǰϤळ�Ȥ�Ǥ��ޤ���
call_handler�ϼ�³������δؿ���¹Ԥ��뤿��˸ƤӽФ����ؿ���̾���ǡ���������Ͽ���Ƥ���ɬ�פ�����ޤ��� ���Υϥ�ɥ�ϡ�Version-1�ƤӽФ������§�äơ�C����Τ褦�ʥ���ѥ������ǽ�Ƥ���ɬ�פ�����ޤ����ޤ����������餺language_handler�����֤��ؿ��Ȥ��ơ�PostgreSQL����Ͽ����Ƥ��ʤ���Фʤ�ޤ��� language_handler���ϡ�ñ�˴ؿ���ƤӽФ��ϥ�ɥ�Ȥ��Ƽ��̤���Τ˻��Ѥ���ץ졼���ۥ�����Ǥ���
inline_handler�Ϥ��θ����̵̾�����ɥ֥��å���¹ԡ�DO���ޥ�ɡˤ��뤿��˸ƤӽФ���롢��������Ͽ���줿�ؿ���̾���Ǥ��� inline_handler�ؿ������ꤵ��ʤ���硢���θ���Ǥ�̵̾�����ɥ֥��å��ݡ��Ȥ��ޤ��� ���Υϥ�ɥ�ؿ��ϡ�DO���ޥ�ɤ�����ɽ���Ȥʤ�internal���ΰ�����1�ļ��ʤ���Фʤ餺���ޤ����̾�void���֤��ޤ��� �ϥ�ɥ������ͤ�̵�뤵��ޤ���
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���Ѵ����ޤ���