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

Chapter 10. SQL �γ�ĥ:�ǡ�����

��˽Ҥ٤��Ƥ���褦�ˡ�PostgreSQL�ˤϴ��ܥǡ�����(�ץ�����ߥ󥰸�����������Ƥ��ޤ��� )��ʣ��ǡ������Ȥ���2����Υǡ�����������ޤ������ξϤǤϡ����������ܥǡ����������������ˡ�ˤĤ��Ƥ��������ޤ���

������ǻ��Ѥ�����ϡ�tutorial �ǥ��쥯�ȥ��complex.sql �� complex.c�Ȥ���̾���Ǥ����Ƥ���ޤ��� ʣ��ǡ���������� funcs.sql �ˤ���ޤ���

�桼������ǡ������Ǥϡ�ɬ�����ϴؿ��Ƚ��ϴؿ���ɬ�פǤ��������δؿ��ϡ�����(�桼���ˤ�����Ϥȥ桼���ؤν��ϤΤ����)ʸ������ˤɤΤ褦�ʷ�����ɽ������뤫�ȡ����η���������Ǥɤ���������뤫����ꤷ�ޤ������ϴؿ��Ϥ������ϤȤ��� NULL ��üʸ������ꡢ���η���(�������)����ɽ�����֤��ޤ������ϴؿ��Ϥ��η�������ɽ�����ꡢNULL��üʸ������֤��ޤ���

�㤨�С�ʣ�ǿ���ɽ������ʣ�ǿ�����������뤳�Ȥ�ͤ��ޤ��� �䤿���Ϥ����餯�����Τ褦�� C ��¤�Τ�ʣ�ǿ���������ɽ������

typedef struct Complex {
    double      x;
    double      y;
} Complex;

�����ơ�����ʸ����ɽ���Ȥ��� (x,y) ������ʸ�������Ѥ��뤳�Ȥ����򤹤�Ǥ��礦��

�����δؿ����ä˽��ϴؿ��򵭽Ҥ���ΤϺ���ǤϤ���ޤ��󡣤������ʤ��顢�����Ĥ���������������ޤ���

complex(ʣ�ǿ�)�����������������η���������������2�ĤΥ桼������ؿ�complex_in ��complex_out����������ɬ�פ�����ޤ���

CREATE FUNCTION complex_in(cstring)
    RETURNS complex
    AS 'PGROOT/tutorial/complex'
    LANGUAGE C;

CREATE FUNCTION complex_out(complex)
    RETURNS cstring
    AS 'PGROOT/tutorial/complex'
    LANGUAGE C;

�Ǹ�ˡ��ǡ�������������뤳�Ȥ��Ǥ��ޤ���

CREATE TYPE complex (
    internallength = 16,
    input = complex_in,
    output = complex_out
);

���ϴؿ�����ӽ��ϴؿ����������̤����Υǡ������򻲾Ȥ��ʤ���Фʤ�ʤ����Ȥ����դ��Ƥ��������� �����ͭ�������Ǥ����ٹ�Υ�å�������ɽ������ޤ���̵�뤷�ƹ����ޤ���

���˽Ҥ٤��褦�ˡ�PostgreSQL�ϴ��ܷ�����������˥��ݡ��Ȥ��Ƥ��ޤ������ˡ�PostgreSQL �Ǥϥ桼�������������⥵�ݡ��Ȥ��Ƥ��ޤ�����������������PostgreSQL �ϼ�ưŪ�ˤ��η�������Υ��ݡ��Ȥ��󶡤��ޤ������Ū����ͳ�ˤ�ꡢ���󷿤ϥ桼���������̾�������˥������������ʸ�� _ ���դ���̾���ˤʤ�ޤ���

ʣ�緿�ξ��ϡ����Ǥ˥����ƥ�Ϥ���餬����Ū�ˤɤΤ褦�ˤʤäƤ��뤫���İ����Ƥ���Τǡ��ؿ����������ɬ�פϤ���ޤ���

�桼������ǡ������������������礭������ɴ�Х��Ȥ�ۤ���ΤǤ���С�TOAST �����ǽ�Ȥ���ˤ����դ�ɬ�פǤ���TOAST���Τ���ˤϡ�����ɽ��������Ĺ�ǡ�����ɸ��쥤�����Ȥ˽��äƤ��ʤ���Фʤ�ޤ�����Ƭ��4�Х��Ȥ�int32���ǡ����켫�Ȥ�ޤ᤿�ǡ����ι�ץХ��ȿ�������ޤ����ޤ������η����ͤ�����դ���ؿ��Ϥ��٤ơ�Ϳ����줿�ͤˤĤ���pg_detoast_datum() ��ƤӽФ��Τ����դ�ɬ�פǤ��� ���δؿ�����̩�Ǥʤ����ϡ��ͤ�NULL�Ǥʤ����Ȥ򤢤餫���ḡ�����ʤ���Фʤ�ޤ��󡣺Ǹ�ˡ�CREATE TYPE ���ޥ�ɤ�¹Ԥ���ݤˡ�Ŭ������¸���ץ��������򤷤Ʋ�������