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

35.12. �桼������α黻��

�黻�Ҥ�΢¦�Ǽºݤκ�Ȥ�Ԥ��ؿ���ƤӽФ�"��ʸ��ξ���"�Ǥ��� �Ǥ����顢�黻�Ҥ�����������ˤޤ����δ��äȤʤ�ؿ����������ɬ�פ�����ޤ��� ���������黻�Ҥ�ñ�ʤ���ʸ��ξ���Ǥ�����ޤ����� �䤤��碌�ץ��ʤˤ��黻�Ҥ���Ѥ����䤤��碌�κ�Ŭ������������ɲþ�������ꤹ�뤫��Ǥ��� ����Ǥϡ������ɲþ���ˤĤ��ƽ���Ū���������ޤ���

PostgreSQL�ǤϺ�ñ��黻�ҡ���ñ��黻�ҡ����黻�Ҥ򥵥ݡ��Ȥ��Ƥ��ޤ��� �黻�Ҥϥ����С������ɲ�ǽ�Ǥ��� �ĤޤꡢƱ���黻��̾�򥪥ڥ��ɤο��ȷ����ۤʤ�黻�Ҥ��Ф��ƻ��Ѥ��뤳�Ȥ��Ǥ���Ȥ������ȤǤ��� �䤤��碌���¹Ԥ����ȡ������ƥ��Ϳ����줿���ڥ��ɤο��ȷ����ƤӽФ��٤��黻�Ҥ���ꤷ�ޤ���

�ʲ���2�Ĥ�ʣ�ǿ��βû���Ԥ��黻�Ҥ����������򼨤��ޤ��� ����complex���������項35.11�򻲾ȡˤ�������Ƥ��뤳�Ȥ�����Ȥ��Ƥ��ޤ��� �ޤ����º�Ȥ�Ԥ��ؿ���ɬ�פǤ��� ���θ塢�黻�Ҥ�����Ǥ��ޤ���

CREATE FUNCTION complex_add(complex, complex)
    RETURNS complex
    AS 'filename', 'complex_add'
    LANGUAGE C IMMUTABLE STRICT;

CREATE OPERATOR + (
    leftarg = complex,
    rightarg = complex,
    procedure = complex_add,
    commutator = +
);

����ǰʲ��Τ褦���䤤��碌��¹ԤǤ���褦�ˤʤ�ޤ���

SELECT (a + b) AS c FROM test_complex;

        c
-----------------
 (5.2,6.05)
 (133.42,144.95)

�����Ǥ����黻�Ҥ�ɤΤ褦�˺�������Τ��򼨤��ޤ����� ñ��黻�Ҥ��������ˤϡ�ñ��leftarg�ʺ�ñ��ξ��ˤ⤷����rightarg�ʱ���ñ��ξ��ˤ��ά��������Ǥ��� procedure��Ȱ����Ѥζ�Τߤ�CREATE OPERATOR�Ǥ�ɬ�ܹ��ܤǤ��� ��Ǽ�����commutator��Ͼ�ά��ǽ�ǡ��䤤��碌���ץƥ��ޥ����ؤΥҥ�ȤȤʤ�ޤ��� commutator�䤽��¾�Υ��ץƥ��ޥ����ؤΥҥ�ȤˤĤ��Ƥξܺ٤ϼ�����������ޤ���