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����Ϥޤ�ޤ���
��������ǡ�������̾���Ǥ��ʥ���������̾��ġˡ�
ʣ�緿�Ѥ�°�������̾�Ǥ���
ʣ�緿����Ȥʤ롢��¸�Υǡ�������̾���Ǥ���
���1�Ĥ��ͤ˴�Ϣ�դ�����ƥ����ȷ����Υ�٥��ɽ����ʸ�����ƥ��Ǥ���
���ꤵ�줿���Υƥ����Ȥˤ�볰�������Υǡ����������������Ѵ�����ؿ���̾���Ǥ���
���ꤵ�줿�������������Υǡ�����ƥ����Ȥˤ�볰���������Ѵ�����ؿ���̾���Ǥ���
���ꤵ�줿���ΥХ��ʥ�ˤ�볰�������Υǡ����������������Ѵ�����ؿ���̾���Ǥ���
���ꤵ�줿�������������Υǡ�����Х��ʥ�ˤ�볰���������Ѵ�����ؿ���̾���Ǥ���
���˴ؤ��뽤���Ҥ�����������������Ѵ�����ؿ���̾���Ǥ���
���������η������Ҥ�ƥ����Ȥγ����������Ѵ�����ؿ���̾���Ǥ���
���ꤷ���ǡ���������������Ϥ�Ԥ��ؿ���̾���Ǥ���
�������ǡ�����������ɽ���ΥХ���Ĺ��ɽ����������Ǥ��� �ǥե���ȤǤϡ�����Ĺ�Ǥ���Ȥߤʤ���ޤ���
�ǡ������γ�Ǽ������Ǥ��� ���Υ��ץ�������ꤹ����ϡ�char��int2��int4��double�Τ����줫�Ǥʤ���Фʤ�ޤ��� �ǥե���Ȥ�int4�Ǥ���
�ǡ������γ�Ǽ��ά�Ǥ��� ���Υ��ץ�������ꤹ����ϡ�plain��external��extended��main�Τ����줫�Ǥʤ���Фʤ�ޤ��� �ǥե���Ȥ�plain�Ǥ���
����������Ʊ��ɽ������������¸�Υǡ�������̾���Ǥ��� internallength��passedbyvalue��alignment��storage���ͤ�������CREATE TYPE���ޥ�ɤΤɤ���������Ū�ʻ���ˤ������ʤ��¤ꡢ������ʣ������ޤ���
���η��ѤΥ��ƥ��ꥳ���ɡ�ñ���ASCIIʸ���ˤǤ��� �ǥե���Ȥ�"�桼�������"��ɽ��'U'�Ǥ��� ¾��ɸ�५�ƥ��ꥳ���ɤ�表45-45�˼����ޤ��� �ȼ��Υ��ƥ����������뤿���¾��ASCIIʸ�������뤳�Ȥ�Ǥ��ޤ���
���η������ƥ�����ǹ��ޤ�뷿�Ǥ�����˿�������ʤ��е��Ǥ��� �ǥե���Ȥϵ��Ǥ��� ư���ͽ�۳����Ѳ�������������ޤ��ΤǴ�¸�η����ƥ���˿��������ޤ�뷿��������뤳�ȤˤϽ�ʬ���դ��Ƥ���������
���Υǡ������Υǥե�����ͤǤ��� ��ά���줿��硢�ǥե���Ȥ�NULL�Ǥ���
������������硢������������Ǥη�����ꤷ�ޤ���
���Υǡ������ˤ������ǡ��ʹ֤ζ��ڤ�ʸ���Ȥ��ƻȤ���ʸ���Ǥ���
���ٺ��������ǡ������λ��Ѥˤ����¤Ϥ���ޤ���Τǡ����ܷ��κ����Ϸ�����Ǹ��ڤ����ؿ��μ¹Ը���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�Ȥ��Ƥ��������������ˤϡ����ϴؿ������ϴؿ��ʤɤ�Ȥä��㤬����ޤ���