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

CREATE OPERATOR

Name

CREATE OPERATOR  --  �������黻�Ҥ����

Synopsis

CREATE OPERATOR name ( PROCEDURE = func_name
     [, LEFTARG = lefttype
     ] [, RIGHTARG = righttype ]
     [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
     [, RESTRICT = res_proc ] [, JOIN = join_proc ]
     [, HASHES ] [, SORT1 = left_sort_op ] [, SORT2 = right_sort_op ] )

����

name

��������黻�ҤǤ������ѤǤ���ʸ���ϲ����򻲾Ȥ��Ƥ���������

func_name

���α黻�Ҥ�������뤿��˻Ȥ���ؿ��Ǥ���

lefttype

�⤷������ϡ��黻�Ҥκ��դΰ����η��Ǥ������Υ��ץ����Ϻ�ñ��黻�ҤǤϾ�ά����ޤ���

righttype

�⤷������ϡ��黻�Ҥα��դΰ����η��Ǥ������Υ��ץ����ϱ�ñ��黻�ҤǤϾ�ά����ޤ���

com_op

���α黻�Ҥθ���黻�ҤǤ���

neg_op

���α黻�Ҥ�����ҤǤ���

res_proc

���α黻�Ҥ���������ɾ���ؿ��Ǥ���

join_proc

���α黻�Ҥη������ɾ���ؿ��Ǥ���

HASHES

���α黻�Ҥ��ϥå�����򥵥ݡ��ȤǤ��뤳�Ȥ򼨤��ޤ���

left_sort_op

���α黻�Ҥ��ޡ������򥵥ݡ��ȤǤ����硢���α黻�Ҥκ��եǡ������򥽡��Ȥ���黻�ҤǤ���

right_sort_op

���α黻�Ҥ��ޡ������򥵥ݡ��ȤǤ����硢���α黻�Ҥα��եǡ������򥽡��Ȥ���黻�ҤǤ���

����

CREATE

�黻�Ҥκ������������������֤�����å������Ǥ���

����

CREATE OPERATOR�ϡ��������黻�� name��������ޤ����黻�Ҥ���������桼�������ν�ͭ�ԤȤʤ�ޤ���

�黻��name�ϡ��ʲ��˼���ʸ���ǡ�NAMEDATALEN-1�ʥǥե���ȤǤ�31��ʸ�����ޤǤ�ʸ����Ǥ���

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

̾��������ˤϰʲ��˼��������Ĥ������󤬤���ޤ���

Note: ��SQLɸ��α黻��̾��Ȥäƺ�Ȥ����硢�̾�Ϥ����ޤ������򤱤뤿������ܤ���黻�Ҥ򥹥ڡ����Ƕ��ڤ�ɬ�פ�����ޤ������Ȥ��С�@�Ȥ���̾���κ�ñ��黻�Ҥ����������硢 X*@Y�Ƚ񤯤��ȤϤǤ��ޤ��� PostgreSQL��1�ĤǤϤʤ��μ¤�2�Ĥα黻�ҤȤ��Ʋ�᤹�뤿��ˤ�X* @Y�Ƚ񤫤ʤ���Фʤ�ޤ���

�黻��!=�����ϤǤ�<>�˼��������Τǡ�������2�Ĥ�̾���Ͼ�������Ǥ���

���ʤ��Ȥ�LEFTARG��RIGHTARG�Τɤ��餫���������ʤ���Фʤ�ޤ������黻�ҤǤ�ξ�����������ʤ���Фʤ�ޤ��󡣱�ñ��黻�ҤǤ�LEFTARG�Τߤ��������ʤ���Фʤ餺����ñ��黻�ҤǤ�RIGHTARG�Τߤ��������ʤ���Фʤ�ޤ���

func_name�ץ���������ϡ�CREATE FUNCTION��Ȥäƻ������������Ƥ��ʤ���Фʤ餺�����ꤵ�줿�������������ΰ�����1�Ĥ�2�ġˤ�����դ���褦���������Ƥ��ʤ���Фʤ�ޤ���

¸�ߤ����硢����黻�Ҥϡ�PostgreSQL��ɬ�פ˱����Ʊ黻���ܤν����ȿž�Ǥ���褦��ǧ�������Ƥ����٤��Ǥ������Ȥ��С��ΰ���Ф���֤�꾮�����פ�Ƚ�ꤹ��黻�ҡ�<<<�פϤ����餯���ΰ���Ф���֤���礭���פ�Ƚ�ꤹ��黻�ҡ�>>>�פ����黻�ҤȤ��ƻ��ĤǤ��礦������ˤ�ꡢ�䤤��碌���ץƥ��ޥ����ϼ�ͳ�˰ʲ���ʸ�򡢤��μ���ʸ���֤������뤳�Ȥ��Ǥ��ޤ���

box '((0,0), (1,1))'  >>> MYBOXES.description

MYBOXES.description <<< box '((0,0), (1,1))'

����ˤ��¹ԥ����ɤ���˸�Ԥ�ɽ����Ȥ��褦�ˤǤ����䤤��碌���ץƥ��ޥ����򤤤��餫ñ��ˤ��뤳�Ȥ��Ǥ��ޤ���

Ʊ�ͤˡ��⤷����Ҥ�������Ϥ����ǧ������Ƥ����٤��Ǥ������Ȥ��С��ΰ�Ρ��������פ�Ƚ�ꤹ��黻�ҡ�===�פ��ΰ�Ρ��������ʤ��פ�Ƚ�ꤹ��黻�ҡ�!==�פȰ���¸�ߤ����Ȥ��ޤ�������Ҥδط��ˤ�ꡢ�䤤��碌���ץƥ��ޥ����ϰʲ���ʸ�򡢤��μ���ʸ��ñ�㲽���뤳�Ȥ��Ǥ��ޤ���

NOT MYBOXES.description === box '((0,0), (1,1))'

MYBOXES.description !== box '((0,0), (1,1))'

����黻��̾��Ϳ����줿��硢PostgreSQL �ϥ����������椫�餽���õ���ޤ������Ф��줿����黻��̾�θ���黻�Ҥ��ޤ�¸�ߤ��ʤ���硢����黻�ҤΥ���ȥ�Ͽ��������줿�黻�Ҥ򤽤θ���黻�ҤȤ��ƻ��Ĥ褦�˹�������ޤ������������Ҥˤ�Ŭ�Ѥ���ޤ����ߤ��θ���黻�Ҥޤ�������ҤǤ���2�Ĥα黻�Ҥ��������Ĥ��뤿��Ǥ����ǽ�α黻�Ҥϸ���黻�Ҥ�����ҡʤΤɤ��餫Ŭ�ڤʤ�Ρˤʤ����������ʤ���Фʤ�ޤ���2���ܤα黻�Ҥ���������Ȥ��ˡ��ǽ�α黻�Ҥ����黻�Ҥޤ�������ҤȤ��ƻ��ꤷ�ޤ��������ѤȤ��ƺǽ�α黻�ҤϹ�������ޤ��� PostgreSQL 6.5�ʹߤǤϡ�ξ���α黻�Ҥ����ߤ��򻲾Ȥ���褦�ˤ��뤳�Ȥ�Ǥ��ޤ��ˡ�

���ץ����HASHES��SORT1��SORT2�Ϸ��μ¹Ԥ��䤤��碌���ץƥ��ޥ����򥵥ݡ��Ȥ��뤿���¸�ߤ��ޤ��� PostgreSQL�Ͼ��ȿ���ִ�[WONG76]�ʤĤޤꡢboolean�ͤ��֤��黻�Ҥˤ�ä�ʬΥ���줿2�ĤΥ��ץ��ѿ�����Ķ�ν����ˤˤ�����ɾ���Ǥ��ޤ������Τۤ��ˡ�PostgreSQL��[SHAP86]�˽��ä��ϥå����祢�르�ꥺ�����Ѥ��뤳�Ȥ��Ǥ��ޤ����ȤϤ������ɤ������ά��Ŭ�ѤǤ��뤫�ɤ������Τ�ɬ�פ�����ޤ������ߤΥϥå����祢�르�ꥺ�����������ɾ���򼨤��黻�ҤΤߤ��Ф���ͭ���Ǥ�������ˡ��ǡ��������������ϡ�����ɽ���������ӥå�ñ�̤����������Ȥ��̣���Ƥ��ʤ���Фʤ�ޤ���ʤ��Ȥ��С���������ɾ���˴ط��Τʤ�̤���ѤΥӥåȤ�ޤ�Ǥ���ǡ������ϥϥå����礵���뤳�Ȥ��Ǥ��ޤ���ˡ�HASHES�Υե饰���䤤��碌���ץƥ��ޥ������Ф����ϥå����礬���α黻�Ҥǰ����˻��ѤǤ��뤳�Ȥ򼨤��ޤ���

Ʊ�ͤˤ��ơ�2�ĤΥ����ȱ黻�Ҥ��䤤��碌���ץƥ��ޥ������Ф����ޡ��������Ȥ������ά��ͭ�����ɤ����������Ƥɤ���α黻�Ҥ�2�Ĥα黻���ܥ��饹���Ф��ƻ��Ѥ����Τ��򼨤��ޤ��������ȱ黻�Ҥ������黻�Ҥ��Ф��ƤΤ��󶡤���ʤ���Фʤ餺�����줾�줬���դȺ��դΥǡ��������Ф���֤�꾮�����פ�ɾ������黻�Ҥ򻲾Ȥ��ʤ���Фʤ�ޤ���

¾�η����ά������Ū�Ǥ��ä���硢 PostgreSQL�Ϥ�����ά����Ѥ���褦�˥��ץƥ��ޥ����ȼ¹ԥ����ƥ���ѹ���������黻�Ҥ�������줿�Ȥ����ɲû��ͤ���뤳�Ȥˤʤ�ޤ��������ʤ��Ȥˡ��������Τ������������ά��ȯ�����뤳�Ȥ���¿�ˤʤ����ɲä����桼������η����ά������ʬ�ϡ�����ʣ�����ۤɤ˲��ͤ�����Ȥϻפ��ޤ���

RESTRICT��JOIN���ץ������䤤��碌���ץƥ��ޥ����η�̥������ο����������ޤ����⤷�������Τ褦�ʷ����ζ礬������ˤ����硢 PostgreSQL�Ϥ��ζ��������MYBOXES�ˤ��륤�󥹥��󥹤γ����¬����ɬ�פ�����ޤ���

MYBOXES.description <<< box '((0,0), (1,1))'

res_proc�ؿ��ϡ����Τʥǡ������ΰ�����Ȥꡢ��ư���������ͤ��֤�����Ͽ���줿�ʤ��Ǥ� CREATE FUNCTION��Ȥä�������줿�˴ؿ��Ǥʤ���Фʤ�ޤ����䤤��碌���ץƥ��ޥ�����ñ�ˤ��δؿ��� ((0,0), (1,1))�Ȥ����ѥ�᡼�����Ϥ��ƸƤӽФ������η�̤˥�졼�����Υ�������ݤ������󥹥��󥹿��δ����ͤ����ꤷ�ޤ���

Ʊ�ͤˡ��黻�Ҥα黻���ܤ�2�ĤȤ⥤�󥹥����ѿ�����äƤ����硢�䤤��碌���ץƥ��ޥ����Ϸ��η�̤Υ��������¬���ʤ���Фʤ�ޤ��󡣴ؿ�join_proc�Ϸ�̥������δ����ͤ�׻����뤿��ˡ��ط�����2�ĤΥơ��֥�����ǿ��ˤ�äƾ軻���줿�̤���ư���������ͤ��֤��ޤ���

�ʲ��Τ褦�ʴؿ�������Ȥ��ޤ���

my_procedure_1 (MYBOXES.description, box '((0,0), (1,1))')

�嵭�δؿ��ȡ��ʲ��α黻�ҤȤΰ㤤�� PostgreSQL���黻�Ҥκ�Ŭ����ޤꡢ�黻�Ҥ��ƤӽФ��줿�Ȥ��ˡ��������֤����¤��뤿��˥���ǥå�������Ѥ��뤫�ɤ��������Ǥ��뤳�ȤǤ���

MYBOXES.description === box '((0,0), (1,1))'

�������ʤ��顢�ؿ����Ŭ�����뤳�ȤϤ�������Ǥ���˽�������ޤ�������ˡ��黻�Ҥ�1�Ĥޤ���2�ĤޤǤȰ����ο������¤���Ƥ���Τ��Ф��ơ��ؿ��Ϥɤ�ʿ��ΰ����Ǥ��뤳�Ȥ��Ǥ��ޤ���

����

�ܺ٤ˤĤ��Ƥ�PostgreSQL �桼���������α黻�ҤξϤ򻲾Ȥ��Ƥ����������桼������α黻�Ҥ�ǡ����١���������������� DROP OPERATOR�򻲾Ȥ��Ƥ���������

������ˡ

�ʲ��Υ��ޥ�ɤϡ�BOX�ǡ��������Ф����ΰ���������Ƚ�ꤹ�뿷�����黻�Ҥ�������ޤ���

CREATE OPERATOR === (
   LEFTARG = box,
   RIGHTARG = box,
   PROCEDURE = area_equal_procedure,
   COMMUTATOR = ===,
   NEGATOR = !==,
   RESTRICT = area_restriction_procedure,
   JOIN = area_join_procedure,
   HASHES,
   SORT1 = <<<,
   SORT2 = <<<
);

�ߴ���

SQL92

CREATE OPERATOR��PostgreSQL �γ�ĥ�Ǥ��� SQL92�ˤ�CREATE OPERATORʸ�Ϥ���ޤ���