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

名前

CREATE TYPE -- �������ǡ��������������

概要

CREATE TYPE name AS
    ( attribute_name data_type [, ... ] )

CREATE TYPE name AS ENUM
    ( [ 'label' [, ... ] ] )

CREATE TYPE name (
    INPUT = input_function,
    OUTPUT = output_function
    [ , RECEIVE = receive_function ]
    [ , SEND = send_function ]
    [ , TYPMOD_IN = type_modifier_input_function ]
    [ , TYPMOD_OUT = type_modifier_output_function ]
    [ , ANALYZE = analyze_function ]
    [ , INTERNALLENGTH = { internallength | VARIABLE } ]
    [ , PASSEDBYVALUE ]
    [ , ALIGNMENT = alignment ]
    [ , STORAGE = storage ]
    [ , LIKE = like_type ]
    [ , CATEGORY = category ]
    [ , PREFERRED = preferred ]
    [ , DEFAULT = default ]
    [ , ELEMENT = element ]
    [ , DELIMITER = delimiter ]
)

CREATE TYPE name

����

CREATE TYPE�ϡ����ߤΥǡ����١����ǻ��ѤǤ��뿷�����ǡ���������Ͽ���ޤ��� ������������桼�������ν�ͭ�ԤȤʤ�ޤ���

��������̾��Ϳ�����Ƥ����硢���ϻ��ꤵ�줿�������ޤǺ�������ޤ��� ��������̾���ʤ���С����η��ϸ��ߤΥ������ޤǺ�������ޤ��� ��̾�ϡ�Ʊ���������ޤˤ����¸�η��⤷���ϥɥᥤ��Ȥϡ��ۤʤ�̾���ˤ���ɬ�פ�����ޤ� �ʤ���ˡ��ơ��֥�ϥǡ������ȴ�Ϣ���Ƥ��뤿�ᡢ�ǡ�����̾��Ʊ���������ޤΥơ��֥�̾�Ȥⶥ�礷�ʤ��褦�ˤ��Ƥ��������ˡ�

ʣ�緿

CREATE TYPE�κǽ�ι�ʸ����Ѥ���ȡ�ʣ�緿������Ǥ��ޤ��� ʣ�緿�ϡ���̾����ӥǡ������Υꥹ�Ȥˤ����ꤵ��ޤ��� ����ϡ��ܼ�Ū�ˤϥơ��֥�ιԷ���Ʊ���Ǥ��� �����������������������Ǥ���С�CREATE TYPE����Ѥ��뤳�Ȥǡ��ºݤΥơ��֥���������ɬ�פ�ʤ������Ȥ��Ǥ��ޤ��� ������ɥ������ʣ�緿�ϡ��ؿ��ΰ���������ͤη��Ȥ��ƻ��Ѥ����ͭ�ѤǤ���

���

CREATE TYPE��2���ܤι�ʸ����Ѥ���ȡ�項8.7������������󷿡�enum�ˤ�������ޤ��� ��󷿤ϡ�1�İʾ�ΰ������դ��Υ�٥�Υꥹ�Ȥ���ޤ��� ��٥��NAMEDATALEN��PostgreSQL��ɸ��ǹ��ۤ�������64�˥Х��Ȥ��⾯�ʤ�Ĺ���Ǥʤ���Фʤ�ޤ���

���ܷ�

CREATE TYPE��3���ܤι�ʸ����Ѥ���ȡ����ܷ��ʥ����鷿�ˤ򿷤��������Ǥ��ޤ��� ���������ܷ����������ˤϥ����ѡ��桼���Ǥʤ���Фʤ�ޤ��� �ʥ��顼�����뷿���������򾷤��������Ф�����å��夹�뤳�Ȥ��餢�뤿�ᡢ�������¤��ʤ���ޤ�������

�ѥ�᡼���ϡ���Ҥν��֤Ǥ���ɬ�פϤʤ���Ǥ�դν��֤ǻ��ꤹ�뤳�Ȥ��Ǥ��ޤ��� ��������������ˡ���CREATE FUNCTION���Ѥ��ơ�2�İʾ�δؿ�����Ͽ���Ƥ���ɬ�פ�����ޤ��� ���ݡ��ȴؿ��Ǥ���input_function��output_function��ɬ�ܤǤ��� receive_function�ؿ���send_function�ؿ���type_modifier_input_function�ؿ���type_modifier_output_function�ؿ��������analyze_function�ؿ��Ͼ�ά��ǽ�Ǥ��� �̾�����δؿ��ϡ�C����䤽��¾�����٥����Ǻ�������ʤ���Фʤ�ޤ���

input_function�ϡ����Υƥ����Ȥˤ�볰��ɽ��������ɽ���������Ѵ������ΤǤ��ꡢ���η��Ѥ���������黻�Ҥ�ؿ��ǻ��Ѥ���ޤ��� output_function�Ϥ��εդ��Ѵ���Ԥ���ΤǤ��� ���ϴؿ��ϡ�1�Ĥ�cstring���ΰ��������뤤�ϡ�cstring����oid����integer���Ȥ���3�Ĥΰ�������褦���������ޤ��� �ǽ�ΰ����ˤ�Cʸ��������ϥƥ����ȡ�2���ܤˤϷ����Τ�OID�����󷿤ξ����㳰�����Ǥη���OID�Ȥʤ�ޤ��ˡ�3���ܤϡ�Ƚ�����Ƥ�����о����typmod���Ϥ��ޤ� �������ʾ���-1���Ϥ��ޤ��ˡ� �������ϴؿ��Ǥϡ��ǡ��������Ȥ��ͤ��֤��ʤ���Фʤ�ޤ��� �̾����ϴؿ���STRICT�Ȥ���������ʤ���Фʤ�ޤ��� �������ʤ��ȡ�NULL�Ȥ��������ͤ��ɤ߼�ä�����NULL�Ȥ����ǽ�Υѥ�᡼������äƸƤӽФ���ޤ��� ���ξ��Ǥ�ؿ���NULL���֤��ʤ���Фʤ�ޤ��� ����ʤ��Х��顼�ˤʤ�ޤ��� �ʤ������������ϤۤȤ�ɤξ�硢�ɥᥤ�����ϴؿ��򥵥ݡ��Ȥ��뤳�Ȥ�տޤ��Ƥ��ޤ����ɥᥤ�����ϴؿ��Ǥ�NULL���Ϥ���䤹���ǽ��������ޤ����� ���ϴؿ��ϡ��������ǡ������ΰ�����1�ļ��褦��������ʤ���Фʤ�ޤ��� ���ϴؿ��ϡ�cstring�����֤��ʤ���Фʤ�ޤ��� ���ϴؿ���NULL�ͤ��Ф��ƸƤӽФ���뤳�ȤϤ���ޤ���

receive_function�Ǥϡ����ΥХ��ʥ�ˤ�볰��ɽ��������ɽ�����Ѵ����ޤ������δؿ��Ͼ�ά��ǽ�Ǥ��� ���δؿ���Ϳ�����ʤ���硢���η��ǤϥХ��ʥ����Ϥ�Ԥ����Ȥ��Ǥ��ޤ��� �Х��ʥ�ɽ������ˡ�ϡ�Ŭ�٤ʰܿ������ݤ��Ĥġ�����ɽ���ؤ��Ѵ������Ȥ��������ʤ�褦���򤹤٤��Ǥ� ���㤨��ɸ��������ǡ������ϡ������Х��ʥ�ɽ���Ȥ��Ƥϥͥåȥ���Х��ȥ���������Ѥ�������ɽ���Ǥϥޥ����ͭ�ΥХ��ȥ���������Ѥ��ޤ��ˡ� ���μ����ؿ��Ǥϡ��ͤ�ͭ�����ɤ�����Ƚ�ꤹ�뤿���Ŭ�ڤʸ�����Ԥ�ʤ���Фʤ�ޤ��� �����ؿ��ϡ�internal���ΰ���1�ġ��ޤ��ϡ�internal����oid��integer����3�Ĥΰ�������褦���������ޤ��� �ǽ�ΰ����ϼ��������Х���ʸ������ݻ�����StringInfo�Хåե��ؤΥݥ��󥿡���ά��ǽ�ʰ����ϡ����ϴؿ���������Ʊ���Ǥ��� �����ơ��ǡ��������Τ��ͤ��֤�ɬ�פ�����ޤ��� �̾�����ؿ���STRICT�Ȥ���������ʤ���Фʤ�ޤ��� �������ʤ��ȡ�NULL�Ȥ��������ͤ��ɤ߼�ä�����NULL�Ȥ����ǽ�Υѥ�᡼������äƸƤӽФ���ޤ��� ���ξ��Ǥ�ؿ���NULL���֤��ʤ���Фʤ�ޤ��� ����ʤ��Х��顼�ˤʤ�ޤ��� �ʤ������������ϤۤȤ�ɤξ�硢�ɥᥤ������ؿ��򥵥ݡ��Ȥ��뤳�Ȥ�տޤ��Ƥ��ޤ����ɥᥤ������ؿ��Ǥ�NULL���Ϥ���䤹���ǽ��������ޤ����� Ʊ�ͤˡ�send_function�ϡ�����ɽ������Х��ʥ�ˤ�볰��ɽ�����Ѵ����ޤ������δؿ����ά��ǽ�Ǥ��� ���δؿ���Ϳ�����ʤ���硢���η��ǤϥХ��ʥ���Ϥ�Ԥ����Ȥ��Ǥ��ޤ��� ���������ؿ��ϡ��������ǡ������ΰ���1�Ĥ���褦��������ʤ���Фʤ�ޤ��� �����ؿ���bytea�����֤��ʤ���Фʤ�ޤ��� �����ؿ���NULL�ͤ��Ф��ƸƤӽФ���ޤ���

�����ǡ��������ǡ���������������������ϴؿ��Ƚ��ϴؿ����������ɬ�פ�����Τˡ��ɤΤ褦�ˤ��Ƥ����δؿ��ǿ������ǡ�����������ͤ����ϤȤ�������Ǥ���Τ�������˻פ����⤷��ޤ��� ���������ϡ��ޤ������ǽ�������뷿�Ȥ����������ޤ��� ���η��ϥץ졼���ۥ�����Ǥ��ꡢ̾�ΤȽ�ͭ�԰ʳ���°��������ޤ��� ����ϡ�¾�˥ѥ�᡼��������ʤ�CREATE TYPE name���ޥ�ɤ�ȯ�Ԥ��뤳�ȤǹԤ��ޤ��� ���θ塢�����ϴؿ��򤳤Υ����뷿�򻲾Ȥ���褦��������뤳�Ȥ��Ǥ��ޤ��� �Ǹ�˴������������ä�CREATE TYPE�ˤ�äơ������뷿�ι��ܤ���������ͭ���ʷ�������֤�����ꡢ�������������̤˻��Ѥ��뤳�Ȥ��Ǥ���褦�ˤʤ�ޤ���

type_modifier_input_function��type_modifier_output_function�Ͼ�ά��ǽ�Ǥ��������������Ҥ򥵥ݡ��Ȥ������ɬ�פǤ��� �����ҤȤϡ�char(5)��numeric(30,2)�ʤɤξ�ά��ǽ�ʷ��������Ϳ���������Ǥ��� PostgreSQL�Ǥϡ��桼���������1�İʾ����������ޤ��ϼ��̻Ҥ����ҤȤ��Ƽ�뤳�Ȥ��Ǥ��ޤ��� �����������ξ���ϥ����ƥ५�������˳�Ǽ��������ñ������������ˤޤȤ�����ΤǤʤ���Фʤ�ޤ��� type_modifier_input_function�ˤϡ�cstring������η���������줿�����Ҥ��Ϥ���ޤ��� �����ͤˤĤ����������򸡺����ʤ���Фʤ�ޤ���������ʾ��ϥ��顼�Ȥ��ޤ��ˡ� �����ơ����������ϡ�"typmod"��Ȥ��Ƴ�Ǽ����롢ñ�������integer�ͤ��֤��ʤ���Фʤ�ޤ��� ����type_modifier_input_function������ʤ���硢�������Ҥϵ��ݤ���ޤ��� type_modifier_output_function������Ū������typmod�ͤ�桼��¦��ɽ���˹�碌���Ѵ����ޤ��� ���δؿ��Ϸ�̾����Ϳ�������Τ�ʸ����Ȥʤ�cstring�ͤ��֤��ʤ���Фʤ�ޤ��� ���Ȥ���numeric�Ѥδؿ��Ǥ�(30,2)���֤����⤷��ޤ��� �ǥե���Ȥ�ɽ���ѽ񼰤��ݴɤ��줿typmod�����ͤ��̤dz�ä���ΤȰ��פ��Ƥ�����ϡ�type_modifier_output_function���ά���뤳�Ȥ��Ǥ��ޤ���

analyze_function�ϡ����Υǡ�����������Ф��롢����ͭ�����׾���μ�����Ԥ��ޤ������δؿ��Ͼ�ά��ǽ�Ǥ��� �ǥե���ȤǤϡ����η��ѤΥǥե���Ȥ�B-tree�黻�ҥ��饹������С�ANALYZE�Ϸ���"����"�黻�Ҥ�"���ʤ�"�黻�Ҥ���Ѥ������׾���򽸤�褦�Ȼ�ߤޤ��� �󥹥��鷿�ˤϡ����ο��񤤤Ϥ��ޤ�Ŭ���Ƥ��ޤ��� ���Τ��ᡢ�ȼ��β��ϴؿ�����ꤹ��ȡ����ο��񤤤��񤭤��뤳�Ȥ��Ǥ��ޤ��� ���β��ϴؿ��ϡ�internal���ΰ�����1�ļ�ꡢ����ͤȤ���boolean���֤��褦���������ɬ�פ�����ޤ��� ���ϴؿ��Ѥ�API�ξܺ٤ϡ�src/include/commands/vacuum.h�ˤ���ޤ���

��������������ɽ���ξܺ٤����򤷤ʤ���Фʤ�ʤ��Τϡ�������I/O�ؿ��Ȥ��η��˴�Ϣ����ư���桼������δؿ��ΤߤǤ���������ɽ���ˤϡ�PostgreSQL���Ф�������ʤ���Фʤ�ʤ�ʣ����°���ͤ�����ޤ��� °������ǺǤ���פʤ�Τ�internallength�Ǥ��� ���ܥǡ������ϡ�internallength��������������ꤷ�Ƹ���Ĺ�Ȥ��ƺ�����������Ǥʤ���internallength��VARIABLE�����ꤷ����Ĺ�Ȥ��ƺ������뤳�Ȥ�Ǥ��ޤ� ������Ū�ˤϡ������typlen��-1�����ꤹ�뤳�Ȥ�ɽ������ޤ��ˡ� ���Ƥβ���Ĺ��������ɽ���ϡ������ͤ���Ĺ�򼨤�4�Х��Ȥ������ͤ���Ϥޤ�ʤ���Фʤ�ޤ���

PASSEDBYVALUE�ե饰�ϡ����Υǡ��������ͤ����ȤǤϤʤ��ͤˤ�ä��Ϥ���뤳�Ȥ򼨤��ޤ������Υե饰�Ͼ�ά��ǽ�Ǥ��� Datum���Υ������ʤۤȤ�ɤΥޥ���Ǥ�4�Х��Ȥ������ޤ��8�Х��ȡˤ���Ĺ������ɽ���η����ͤ��Ϥ����Ȥ��Ǥ��ޤ���

alignment�ѥ�᡼���ϡ����Υǡ������γ�Ǽ�κݤ�����ɬ�פǤ��뤳�Ȥ򼨤��ޤ��� �����ǽ���ͤϡ�1��2��4��8�Х��ȶ����Ǥ������Ʊ���Ǥ��� ����Ĺ���ΰ������֤Ϻ���Ǥ�4������ʤ���Фʤ�ʤ����Ȥ����դ��Ƥ��������� �ǽ�����ǤȤ���int4������ʤ���Фʤ�ʤ�����Ǥ���

storage�ѥ�᡼������Ѥ��뤳�Ȥǡ�����Ĺ�ǡ��������Ǽ����ݤ���ά�����򤹤뤳�Ȥ��Ǥ��ޤ� �ʸ���Ĺ�η��ˤ�plain�Τߤ����ѤǤ��ޤ��ˡ� plain����ꤹ��ȡ����η��Υǡ����Ͼ�˥���饤��dz�Ǽ���졢���̤���ޤ��� extended����ꤹ��ȡ������ƥ�Ϥޤ�Ĺ���ǡ����ͤ򰵽̤��褦�Ȥ�������Ǥ�ޤ�Ĺ�᤮������ͤ�ᥤ��ơ��֥�ιԤ��������ư�ư���ޤ��� external�ϥᥤ��ơ��֥뤫���ͤ������ư�ư���뤳�Ȥ�����ޤ����������ƥ�ϥǡ����򰵽̤��褦�Ȥ��ޤ��� main�ϥǡ����ΰ��̤�������Ǥ�������ͤ�ᥤ��ơ��֥뤫�������ʤ��褦�ˤ��ޤ� �ʹԤ����뤿���¾����ˡ���ʤ����ˤϥᥤ��ơ��֥뤫��������Ƥ��ޤ���ǽ��������ޤ�����extended��external�����ꤵ�줿�����ƥ����ͥ�褷�ƥᥤ��ơ��֥�˻Ĥ���ޤ��ˡ�

like_type�ѥ�᡼���ϡ����餫�δ�¸�Υǡ���������ʣ������Ȥ������ǡ������δ���ɽ���ץ��ѥƥ�����ꤹ�롢�̤���ˡ���󶡤��ޤ��� internallength��passedbyvalue��alignment��storage���ͤ����ꤵ�줿������ʣ������ޤ��� �����̹��ޤ�ޤ��󤬡�LIKE��Ȱ��ˤ������ͤ���ꤹ�뤳�Ȥǡ��ͤ��񤭤��뤳�Ȥ��ǽ�Ǥ����� �������������٥�����ˤ���ή���˽��ä���¸�η���"�ܤ�"���ˡ�������ˡ��ɽ������ꤹ�뤳�Ȥ��ä�ͭ�ѤǤ���

category��preferred�ѥ�᡼���ϡ�����Ū�ʥ��㥹�Ȥ������ޤ��ʾ�����Ŭ�Ѥ���뤫�ɤ����ˤĤ��Ƥ������������뤿��˻��Ѥ��뤳�Ȥ��Ǥ��ޤ��� �ƥǡ�������ñ���ASCIIʸ����̿̾����륫�ƥ����°���Ƥ��ޤ��� �����ơ��Ʒ��Ϥ��Υ��ƥ����"���ޤ���preferred��"���ݤ�������ޤ��� �ѡ����ϡ�Ʊ��Υ��ƥ������¾�η�����Ρ˹��ޤ�뷿�ؤΥ��㥹�Ȥ򡢤��ε�§����񤭤��줿�ؿ��ޤ��ϱ黻�Ҥβ���ͭ�Ѥʾ���ͥ�褷�ޤ��� ���ܺ٤�第10章�򻲾Ȥ��Ƥ��������� ¾�η��ؤΡ��ޤ��ϡ��ۤ��η�����ΰ���Ū�ʥ��㥹�Ȥ�����ʤ����Ǥϡ������������ǥե���ȤΤޤޤˤ��Ƥ������Ȥǽ�ʬ�Ǥ��� ������������Ū�ʥ��㥹�Ȥ���Ĵ�Ϣ���륰�롼�פǤϡ�����餹�٤Ƥ򥫥ƥ����°��������1�Ĥޤ���2�Ĥ򥫥ƥ�����ǹ��ޤ���ΤȤ���"�Ǥ����Ū��"���Ȥ������򤹤뤳�Ȥ�ͭ�ѤȤʤ��礬¿������ޤ��� �桼��������򡢿��ͷ���ʸ���󷿤ʤɤδ�¸���Ȥ߹��ߥ��ƥ�����ɲä�����ˡ�category�ѥ�᡼�����ä�ͭ�ѤǤ��� �����������٤Ƥ��桼��������Υ��ƥ����������뤳�Ȥ�Ǥ��ޤ��� ���ƥ���Ȥ���̿̾����Ƥ��ʤ�Ǥ�դ���ʸ�������򤷤Ƥ���������

�桼�������Υǡ���������Υǥե���Ȥ�NULL�ʳ��ˤ��������ϡ��ǥե�����ͤ���ꤹ�뤳�Ȥ��Ǥ��ޤ��� �ǥե�����ͤ�DEFAULT������ɤǻ��ꤷ�Ƥ������� �ʤ�����ˡ�ǻ��ꤵ�줿�ǥե�����ͤϡ�����������Ϳ���줿������Ū��DEFAULT��ˤ�äƾ�񤭤�����ǽ��������ޤ��ˡ�

�ǡ�����������Ǥ��뤳�Ȥ򼨤��ˤϡ�ELEMENT������ɤ���Ѥ����������Ǥη�����ꤷ�Ƥ��������� �㤨�С�4�Х���������int4�ˤ�������������ˤϡ�ELEMENT = int4�Ȼ��ꤷ�Ƥ��������� �ܺ٤ϸ�Ҥ����󷿤��������ޤ���

���η��ˤ������γ��������ˤ������ʹ֤ζ��ڤ�ʸ���򼨤�����ˡ�delimiter�������ʸ�������ꤹ�뤳�Ȥ��Ǥ��ޤ��� �ǥե���Ȥζ��ڤ�ʸ���ϥ���ޡ�','�ˤǤ��� ���ζ��ڤ�ʸ���ϡ��������Ǥη��˴ط������ΤǤ��ꡢ���󷿼��Τ˴ط������ΤǤʤ����Ȥ����դ��Ƥ���������

����

�桼������������������ȡ�PostgreSQL�ϡ���ưŪ�ˡ����ܷ�̾�����˥���������������դ���ɬ�פ˱�����NAMEDATALENĹ���û���ʤ�褦���ڤ�ͤ��줿̾������ġ���Ϣ�������󷿤�������ޤ��� �ʤ��������դ���줿̾������¸�η�̾�ȶ��礹���硢���礹��̾�Τ��ʤ��ʤ�ޤǤ��ν����������֤���ޤ����� ���ΰ���Ū�˺�����������󷿤ϲ���Ĺ�ǡ��Ȥ߹��������ϴؿ�array_in��array_out����Ѥ��ޤ��� ���󷿤Ϥ������ǤȤʤ뷿�ν�ͭ�Ԥȥ������ޤΤʤ�餫���ѹ����ɽ������ޤ������ǤȤʤ뷿��������줿���˺������ޤ���

����Ū�˹ͤ���ȡ��֥����ƥब��ưŪ�����󷿤���������������ΤǤ���С�ELEMENT���ץ����Ϥɤ�����¸�ߤ���Τ������פ��Ի׵Ĥ˻פ��Ǥ��礦�� ELEMENT����̣����ġ�ͣ��ξ��ϼ��Τ褦�ʾ�������������Ĺ�η������������Ǥ��� ���ξ��Ȥϡ�����Ū�����̤�Ʊ������Ǥ���ʤ�����ȤʤäƤ��뤳�ȡ�����������Ф���ź������ꤷ��ľ�ܥ��������Ǥ��뤳�ȡ��ä��ơ�����������뷿���Τ��Ф������ɤΤ褦�ʤ�ΤǤ��äƤ⡢����餫��ľ�ܥ��������Ǥ��뤳�ȤǤ��� �㤨�С�point���Ǥϡ����ι������ǤǤ���2�Ĥ���ư��������point[0]�����point[1]�Ȥ�����ˡ�ǥ����������뤳�Ȥ��Ǥ��ޤ��� ���ε�ǽ�ϡ���������������Ʊ��θ���Ĺ�ե�����ɤ����Τ��¤ӤǤ��롢����Ĺ�η��ǤΤ�ư��뤳�Ȥ����դ��Ƥ��������� ź���ˤ����꤬��ǽ�ʲ���Ĺ���ϡ�array_in��array_out����Ѥ��ơ����̲����줿����ɽ�������ɬ�פ�����ޤ��� ���Ū����ͳ�����餫�˴ְ㤤�ʤΤǤ������ѹ�����ˤ��٤���������ˤˤ�ꡢ����Ĺ���󷿤ؤ������ֹ�����0����Ϥޤꡢ����Ĺ����ξ���1����Ϥޤ�ޤ���

�ѥ�᡼��

name

��������ǡ�������̾���Ǥ��ʥ������޽���̾��ġˡ�

attribute_name

ʣ�緿�Ѥ�°�������̾�Ǥ���

data_type

ʣ�緿����Ȥʤ롢��¸�Υǡ�������̾���Ǥ���

label

��󷿤�1�Ĥ��ͤ˴�Ϣ�դ�����ƥ����ȷ����Υ�٥��ɽ����ʸ�����ƥ��Ǥ���

input_function

���ꤵ�줿���Υƥ����Ȥˤ�볰�������Υǡ����������������Ѵ�����ؿ���̾���Ǥ���

output_function

���ꤵ�줿�������������Υǡ�����ƥ����Ȥˤ�볰���������Ѵ�����ؿ���̾���Ǥ���

receive_function

���ꤵ�줿���ΥХ��ʥ�ˤ�볰�������Υǡ����������������Ѵ�����ؿ���̾���Ǥ���

send_function

���ꤵ�줿�������������Υǡ�����Х��ʥ�ˤ�볰���������Ѵ�����ؿ���̾���Ǥ���

type_modifier_input_function

���˴ؤ��뽤���Ҥ�����������������Ѵ�����ؿ���̾���Ǥ���

type_modifier_output_function

���������η������Ҥ�ƥ����Ȥγ����������Ѵ�����ؿ���̾���Ǥ���

analyze_function

���ꤷ���ǡ����������׾�����Ϥ�Ԥ��ؿ���̾���Ǥ���

internallength

�������ǡ�����������ɽ���ΥХ���Ĺ��ɽ����������Ǥ��� �ǥե���ȤǤϡ�����Ĺ�Ǥ���Ȥߤʤ���ޤ���

alignment

�ǡ������γ�Ǽ������Ǥ��� ���Υ��ץ�������ꤹ����ϡ�char��int2��int4��double�Τ����줫�Ǥʤ���Фʤ�ޤ��� �ǥե���Ȥ�int4�Ǥ���

storage

�ǡ������γ�Ǽ��ά�Ǥ��� ���Υ��ץ�������ꤹ����ϡ�plain��external��extended��main�Τ����줫�Ǥʤ���Фʤ�ޤ��� �ǥե���Ȥ�plain�Ǥ���

like_type

����������Ʊ��ɽ������������¸�Υǡ�������̾���Ǥ��� internallength��passedbyvalue��alignment��storage���ͤ�������CREATE TYPE���ޥ�ɤΤɤ���������Ū�ʻ���ˤ���񤭤���ʤ��¤ꡢ������ʣ������ޤ���

category

���η��ѤΥ��ƥ��ꥳ���ɡ�ñ���ASCIIʸ���ˤǤ��� �ǥե���Ȥ�"�桼�������"��ɽ��'U'�Ǥ��� ¾��ɸ�५�ƥ��ꥳ���ɤ�表45-45�˼����ޤ��� �ȼ��Υ��ƥ����������뤿���¾��ASCIIʸ�������򤹤뤳�Ȥ�Ǥ��ޤ���

preferred

���η������ƥ�����ǹ��ޤ�뷿�Ǥ�����˿�������ʤ��е��Ǥ��� �ǥե���Ȥϵ��Ǥ��� ư���ͽ�۳����Ѳ�������������ޤ��ΤǴ�¸�η����ƥ���˿��������ޤ�뷿��������뤳�ȤˤϽ�ʬ���դ��Ƥ���������

default

���Υǡ������Υǥե�����ͤǤ��� ��ά���줿��硢�ǥե���Ȥ�NULL�Ǥ���

element

���󷿤���������硢������������Ǥη�����ꤷ�ޤ���

delimiter

���Υǡ������ˤ������ǡ��ʹ֤ζ��ڤ�ʸ���Ȥ��ƻȤ���ʸ���Ǥ���

����

���ٺ��������ǡ������λ��Ѥˤ����¤Ϥ���ޤ���Τǡ����ܷ��κ����Ϸ�����Ǹ��ڤ����ؿ��μ¹Ը���PUBLIC���Ф�����Ϳ���뤳�Ȥ�Ʊ���Ǥ��� ���μ�η�����ˤ�����ͭ�Ѥʴؿ��Ǥϡ�������̾�����ˤʤ�ޤ��� �������������߷פ������ˡ������������顢�ޤ��ϡ����������ؤ��Ѵ���Ԥ����ˡ����δؿ���"��̩��"�����ɬ�פȤ��뤫�ɤ����Ϲͤ��Ƥ���������

PostgreSQL�С������8.3������ΥС������Ǥϡ�������������󷿤�̾���Ͼ�����Ƿ���̾�������ˣ��ĤΥ������������ʸ����_�ˤ��դ�����Τˤʤ�ޤ����� �ʤ��Τ��᷿��̾����¾��̾������1ʸ��û�����¤���Ƥ��ޤ������� �̾�Ϥ��Τ褦��̾�դ����뤳�Ȥ��Ѥ�ꤢ��ޤ��󤬡�����Ĺ��̾���ξ��䥢���������������Ϥޤ�桼������η��ȶ��礹���硢���󷿤�̾�����Ѥ�뤳�Ȥ�����ޤ��� ���Τ��ᡢ�����Ѵ��˰�¸���������ɤ�񤯤��Ȥ��򤱤Ƥ��������� ����ˡ�pg_type.typarray����Ѥ��ơ����ꤷ�����˴ؤ������󷿤����ꤷ�Ƥ���������

�����������������Ϥޤ뷿��ơ��֥�̾�λ��Ѥ��򤱤뤳�Ȥ������Ǥ��� �����Ф��������줿����̾�Τ�桼�������̾���ȶ��礷�ʤ��褦���ѹ����ޤ��������𤹤����������ޤ��� �ä˸Ť����饤����ȥ��եȥ���������Ѥ����硢̾���������������������Ϥޤ뷿���������ɽ����ΤȲ��ꤷ�Ƥ��뤫�⤷��ޤ���

PostgreSQL�С������8.2������ޤǤǤϡ�CREATE TYPE name��ʸ��¸�ߤ��ޤ��� �����˴��ܷ������������ˡ�ϡ��ǽ�����ϴؿ���������뤳�ȤǤ����� ������ˡ�Ǥϡ�PostgreSQL�Ϥޤ��������ǡ�������̾�Τ����ϴؿ�������ͷ�����Ƚ�Ǥ��ޤ��� ���ξ�硢�����뷿������Ū�˺������졢�Ĥ�������ϴؿ�������ǻ��Ȥ��뤳�Ȥ��Ǥ��ޤ��� ������ˡ��ޤ����ѤǤ��ޤ������ѻ�ͽ��Ǿ���Υ�꡼���Ǥʤ��ʤ��ǽ��������ޤ��� �ޤ����ؿ�����ˤ�����ñ����Ǥ��ְ㤤�η�̺�������륷���뷿�ˤ�äƵ����륫�������κ�����ɻߤ��뤿�ᡢ���ϴؿ���C�Ǻ������줿���ˤΤߤ�����ˡ�ˤ�äƥ����뷿����������ޤ���

PostgreSQL 7.3������ΥС������Ǥϡ��ؿ��β��̻��Ȥ򡢥ץ졼���ۥ���Ȥʤ뵿���ǡ������Ǥ���opaque���Υǡ�����̾���֤������뤳�Ȥˤ�äơ�shell����������뤳�Ȥ����ˡ�����Ū���򤱤Ƥ��ޤ����� �ޤ���7.3������ΥС������Ǥϡ�cstring���ΰ�������ӷ�̤�opaque���Ȥ����������ɬ�פ�����ޤ����� �Ť�����ץե�����Υ����ɤ򥵥ݡ��Ȥ��뤿�ᡢCREATE TYPE�Ǥ�opaque������Ѥ���褦������줿�����ϴؿ����������ޤ��� �����������դ�¥����å�������ɽ�������������ǡ���������Ѥ���褦�˴ؿ���������ѹ����ޤ���

��

������Ǥϡ�ʣ�緿��������������ؿ�����ǻ��Ѥ��ޤ���

CREATE TYPE compfoo AS (f1 int, f2 text);
CREATE FUNCTION getfoo() RETURNS SETOF compfoo AS $$
    SELECT fooid, fooname FROM foo
$$ LANGUAGE SQL;

������Ǥϡ���󷿤�������������ơ��֥�����˻��Ѥ��ޤ���

CREATE TYPE bug_status AS ENUM ('new', 'open', 'closed');

CREATE TABLE bug (
    id serial,
    description text,
    status bug_status
);

������Ǥϡ�box���ܥǡ�����������������η���ơ��֥��������ǻ��Ѥ��Ƥ��ޤ���

CREATE TYPE box;

CREATE FUNCTION my_box_in_function(cstring) RETURNS box AS ... ;
CREATE FUNCTION my_box_out_function(box) RETURNS cstring AS ... ;

CREATE TYPE box (
    INTERNALLENGTH = 16,
    INPUT = my_box_in_function,
    OUTPUT = my_box_out_function
);

CREATE TABLE myboxes (
    id integer,
    description box
);

box����������¤��float4����4���¤������ξ�硢���Τ褦�˽񤭴����뤳�Ȥ�Ǥ��ޤ���

CREATE TYPE box (
    INTERNALLENGTH = 16,
    INPUT = my_box_in_function,
    OUTPUT = my_box_out_function,
    ELEMENT = float4
);

���Τ褦�ˤ���ȡ�box�ͤ����Ǥ������ֹ�ǥ��������Ǥ��ޤ��� ����¾�ϡ�������Ʊ�ͤ�ư��򤷤ޤ���

������Ǥϡ��顼�����֥������ȷ�����������ơ��֥�����ˤƤ������Ѥ��ޤ���

CREATE TYPE bigobj (
    INPUT = lo_filein, OUTPUT = lo_fileout,
    INTERNALLENGTH = VARIABLE
);
CREATE TABLE big_objs (
    id integer,
    obj bigobj
);

����¾����ϡ�項35.11�򻲾Ȥ��Ƥ��������������ˤϡ����ϴؿ������ϴؿ��ʤɤ�Ȥä��㤬����ޤ���

�ߴ���

CREATE TYPE���ޥ�ɤϡ�PostgreSQL�γ�ĥ�Ǥ��� ɸ��SQL�ˤ�CREATE TYPEʸ�Ϥ���ޤ������ܺ٤ϰۤʤ�ޤ���

��Ϣ����

CREATE FUNCTION, DROP TYPE, ALTER TYPE, CREATE DOMAIN