31.12. �û����������

ÿ�����������Ƕ������ɻ�Ķ�Ӧ������"��������"�� �������ڴ���������֮ǰ�����ȴ�����Ӧ�ĺ����� ������һ��������Ҳ�����������������Σ� ��Ϊ�������ſ��԰�����ѯ�滮���Ż�ʹ�øò������IJ�ѯ�ĸ�����Ϣ�� ��һ�ڽ����ڽ�����Щ���ӵ���Ϣ��

PostgreSQL ֧����Ŀ����Ŀ����˫Ŀ�������� �������������أ� Ҳ����˵��ͬһ�����������ֿ������ڲ�ͬ�ģ� ӵ�в�ͬ����Ŀ�����͵IJ������IJ���������ִ��һ����ѯ��ʱ��ϵͳ�����ֺ��ṩ�IJ������������ж���Ҫ�����ĸ���������

������һ��������������������ӵIJ����������ӡ� ���Ǽ����Ѿ�������complex����Section 31.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 = +
);

�������ǿ���ִ�������������IJ�ѯ��

SELECT (a + b) AS c FROM test_complex;

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

�����������Ѿ���ʾ����δ���˫Ŀ��������Ҫ������Ŀ�������� ֻ��Ҫʡ��leftarg������Ŀ������������rightarg �����Ҳ����������ɡ�ֻ��procedure�Ӿ�Ͳ�����argument���Ӿ��� CREATE OPERATOR ����Ҫ����Ŀ�� ��������ʾ�� commutator �Ӿ���һ������ѯ�Ż����Ŀ�ѡ�İ�ʾ�� ���� commutator �������Ż�����ʾ����ϸ��Ϣ���½ڸ�����