CREATE OPERATOR

Name

CREATE OPERATOR -- ����һ���µIJ�����

Synopsis

CREATE OPERATOR name (
    PROCEDURE = funcname
    [, LEFTARG = lefttype ] [, RIGHTARG = righttype ]
    [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
    [, RESTRICT = res_proc ] [, JOIN = join_proc ]
    [, HASHES ] [, MERGES ]
    [, SORT1 = left_sort_op ] [, SORT2 = right_sort_op ]
    [, LTCMP = less_than_op ] [, GTCMP = greater_than_op ]
)

����

CREATE OPERATOR ����һ���µIJ������� name�� ����ò��������û���Ϊ�������ߡ����������һ��ģʽ������ô�ò���������ָ����ģʽ�д����� ���������ڵ�ǰģʽ�д�����

������ name ��һ�����NAMEDATALEN-1 ���ģ�ȱʡΪ 63 ���������ַ���ɵ��ִ���

+ - * / < > = ~ ! @ # % ^ & | ` ?

��ѡ�����ֵ�ʱ���м������ƣ�

������ != ������ʱӳ��� <>�� �������������������ȵġ�

������Ҫ����һ��LEFTARG��RIGHTARG�� ����˫Ŀ��������˵�����߶���Ҫ���塣 ����Ŀ��������˵��ֻ��Ҫ����LEFTARG�� ��������Ŀ��������˵��ֻ��Ҫ����RIGHTARG��

ͬ����funcname ���̱����Ѿ��� CREATE FUNCTION ������� ���ұ��붨��Ϊ������ȷ������ָ�����Ͳ�����һ��������������

�����Ӿ�������ѡ�IJ������Ż��Ӿ䡣���ǵĺ����� Section 31.13 �ﶨ�塣

����

name

Ҫ����IJ��������֡����õ��ַ������ġ� �����ֿ�����ģʽ���Σ����� CREATE OPERATOR myschema.+ (...)�� ���û��ģʽ�����ڵ�ǰģʽ�д�����������ͬһ��ģʽ�е�����������������һ�������֣�ֻҪ���Dz�����ͬ���������͡������ ������

funcname

����ʵ�ָò������ĺ�����

lefttype

������ڵĻ������������ֱߵIJ����������͡� �������Ŀ�������������������ʡ�ԡ�

righttype

������ڵĻ������������ֱߵIJ����������͡� �������Ŀ�������������������ʡ�ԡ�

com_op

�ò�������Ӧ�Ľ�����commutator����������

neg_op

��Ӧ�ĸ���������

res_proc

�˲�����Լ��ѡ���Լ��㺯����

join_proc

�˲���������ѡ���Լ��㺯����

HASHES

�����˲�����֧�ֹ�ϣ��ɢ�У����ӡ�

MERGES

�����˲���������֧��һ���ں����ӡ�

left_sort_op

����˲�����֧���ں����ӣ�join�����˲����������ֱ����ݵ������������

right_sort_op

����˲�����֧���ں����ӣ�join�����˲����������ֱ����ݵ������������

less_than_op

����������������֧���ں����ӣ���ô����DZȽ�����������������������͵�С�ڲ�������

greater_than_op

��������������֧���ں����ӣ���ô����DZȽ�����������������������͵Ĵ��ڲ�������

Ҫ�� com_op ����������ѡ���������һ��ģʽ���εIJ���������ʹ�� OPERATOR() �﷨������

COMMUTATOR = OPERATOR(myschema.===) ,

ע��

����� Section 31.12 �в������½ڻ�ȡ������Ϣ��

��ʹ�� DROP OPERATOR �����ݿ���ɾ���û������������ �� ALTER OPERATOR �޸�һ�����ݿ���IJ�������

����

���������һ���²������������ȣ����� box �������͡�

CREATE OPERATOR === (
    LEFTARG = box,
    RIGHTARG = box,
    PROCEDURE = area_equal_procedure,
    COMMUTATOR = ===,
    NEGATOR = !==,
    RESTRICT = area_restriction_procedure,
    JOIN = area_join_procedure,
    HASHES,
    SORT1 = <<<,
    SORT2 = <<<
    -- ������������������������������� MERGES��
    -- LTCMP �� GTCMP �ֱ������ < �� >
);

������

CREATE OPERATOR �� PostgreSQL ��չ�� ��SQL92��û�� CREATE OPERATOR ��䡣

�ּ�

ALTER OPERATOR, CREATE OPERATOR CLASS, DROP OPERATOR