CREATE OPERATOR name ( PROCEDURE = func_name [, 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 myschema.+ (...)
���α黻�Ҥ�������뤿��˻Ȥ���ؿ��Ǥ���
�⤷������ϡ��黻�Ҥκ��դΰ����η��Ǥ������Υ��ץ����Ϻ�ñ��黻�ҤǤϾ�ά����ޤ���
�⤷������ϡ��黻�Ҥα��դΰ����η��Ǥ������Υ��ץ����ϱ�ñ��黻�ҤǤϾ�ά����ޤ���
���α黻�Ҥθ���黻�ҤǤ���
���α黻�Ҥ�����ҤǤ���
���α黻�Ҥ���������ɾ���ؿ��Ǥ���
���α黻�Ҥη������ɾ���ؿ��Ǥ���
���α黻�Ҥ��ϥå�����ݡ��ȤǤ��뤳�Ȥ��ޤ���
���α黻�Ҥ��ޡ������ݡ��ȤǤ��뤳�Ȥ��ޤ���
���α黻�Ҥ��ޡ������ݡ��ȤǤ����硢���α黻�Ҥκ��եǡ��������Ȥ��뾮�ʤ�黻�ҤǤ���
���α黻�Ҥ��ޡ������ݡ��ȤǤ����硢���α黻�Ҥα��եǡ��������Ȥ��뾮�ʤ�黻�ҤǤ���
���α黻�Ҥ��ޡ������ݡ��ȤǤ����硢���α黻�Ҥ����ϥǡ���������Ӥ��뾮�ʤ�黻�ҤǤ���
���α黻�Ҥ��ޡ������ݡ��ȤǤ����硢���α黻�Ҥ����ϥǡ���������Ӥ�����ʤ�黻�ҤǤ���
CREATE OPERATOR�ϡ��������黻�� name��������ޤ����黻�Ҥ���������桼�������ν�ͭ�ԤȤʤ�ޤ���
��������̾��Ϳ�����Ƥ����硢���α黻�Ҥϻ��ꤵ�줿�������ޤǺ�������ޤ��� ��������̾���ʤ���С��黻�Ҥϸ��ߤΥ������� (�����ѥ������ˤ��륹�����ޡ�CURRENT_SCHEMA() ����) �Ǻ�������ޤ���
�ۤʤ�ǡ������α黻����Ǥ���С�Ʊ������������� 2 �Ĥα黻�Ҥ���Ʊ��̾���Ǥ���ޤ��� ����ϡ������С��������ȸƤФ���ΤǤ��� �黻��̾�������ޤ��ʾ�硢�����ƥ�Ǥϡ��ºݤ����ϥǡ������˴�Ť����оݤȤʤ�黻�Ҥ����褦�Ȥ��ޤ���
�黻��name�ϡ��ʲ��˼���ʸ���ǡ�NAMEDATALEN-1�ʥǥե���ȤǤ�63��ʸ�����ޤǤ�ʸ����Ǥ���
+ - * / < > = ~ ! @ # % ^ & | ` ? $
$�ϡ�ʣ��ʸ���α黻��̾�ΰ����ˤʤ뤳�ȤϤǤ��ޤ�����ñ��ʸ���α黻�ҤȤ���������뤳�ȤϤǤ��ޤ���
--��/*�ϱ黻��̾�Τɤ��ˤ�Ȥ����Ȥ��Ǥ��ޤ��� �����Ȥγ��ϤȤߤʤ�Ƥ��ޤ�����Ǥ���
ʣ��ʸ���α黻��̾�ϡ������Τ�����1�İʾ��ޤޤʤ��¤�+�ޤ���-�ǽ���뤳�Ȥ��Ǥ��ޤ���
~ ! @ # % ^ & | ` ? $
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��MERGES��SORT1��SORT2��LTCMP������� GTCMP ���ץ����ϡ�����¹Ԥ���ݤ��䤤��碌���ץƥ��ޥ����ݡ��Ȥ��뤿���¸�ߤ��ޤ��� PostgreSQL �ϡ����ȿ���ִ� (�Ĥޤꡢboolean �ͤ��֤��黻�Ҥˤ�ä�ʬΥ���줿��2 �ĤΥ��ץ��ѿ�����Ķ�ν���) �ˤ�ꡢ����ɾ���Ǥ��ޤ��� ���Τۤ��ˡ�PostgreSQL �Ǥϡ��ϥå����祢�르�ꥺ�����Ѥ��뤳�Ȥ��Ǥ��ޤ��� �ȤϤ������ɤ������ά��Ŭ�ѤǤ��뤫�ɤ������Τ�ɬ�פ�����ޤ��� ���ߤΥϥå����祢�르�ꥺ�����������ɾ�����黻�ҤΤߤ��Ф���ͭ���Ǥ�������ˡ��ǡ��������������ϡ�����ɽ���������ӥå�ñ�̤����������Ȥ��̣���Ƥ��ʤ���Фʤ�ޤ��� (���Ȥ��С���������ɾ���˴ط��Τʤ�̤���ѤΥӥåȤ�ޤ�Ǥ���ǡ������ϥϥå����礵���뤳�Ȥ��Ǥ��ޤ���)�� HASHES �Υե饰�ϡ��䤤��碌���ץƥ��ޥ������Ф����ϥå����礬���α黻�Ҥǰ����˻��ѤǤ��뤳�Ȥ��ޤ���
Ʊ�ͤˡ�MERGES �ե饰�ϡ����α黻�Ҥǥޡ��������Ȥ������ά�Ȥ��ƻ��Ѳ�ǽ���ɤ������ޤ��� �ޡ������Ǥϡ�2 �Ĥ����ϥǡ�����������ν�����¤�Ǥ���ɬ�פ�����ޤ����ޤ����ޡ������黻�Ҥ������ν���˽��ä������黻�ҤΤ褦�˺��Ѥ���ɬ�פ�����ޤ��� ���Ȥ��С�integer ����� float �ѿ���ξ�������Ϥ��̾�ο��ͽ�˥����Ȥ��뤳�Ȥˤ�ꡢ����Ū�˥ޡ�����礹�뤳�Ȥ���ǽ�Ǥ��� �ޡ�������¹Ԥ���ˤϡ��ޡ������������黻�Ҥ˴�Ϣ���� 4 �Ĥα黻�Ҥ����ƥब���̲�ǽ�Ǥ��뤳�Ȥ�ɬ�פǤ��� 4 �Ĥα黻�ҤȤϡ��������ϥǡ��������Ф��뾮�ʤ���ӡ��������ϥǡ��������Ф��뾮�ʤ���ӡ�2 �ĤΥǡ������֤ξ��ʤ���ӡ�2 �ĤΥǡ������֤���ʤ���ӤǤ��� �����α黻�Ҥϡ����줾�� SORT1��SORT2��LTCMP������� GTCMP ���ץ����ȡ�̾���ǻ��ꤹ�뤳�Ȥ��Ǥ��ޤ��� MERGES �����ꤵ�줿���ˤ����α黻��̾�Τ�����Ǥ��ά�����ȡ����줾�� <��<��<������� > �Ȥ����ǥե����̾�������ޤ��� �ޤ�������� 4 �Ĥα黻�ҥ��ץ����Τ����줫��¸�ߤ����硢MERGES �����ۻ��ꤵ��Ƥ����ΤȤߤʤ���ޤ���
¾�η����ά������Ū�Ǥ��ä���硢 PostgreSQL�Ϥ�����ά����Ѥ���褦�˥��ץƥ��ޥ����ȼ¹ԥ����ƥ���ѹ���������黻�Ҥ�������줿�Ȥ����ɲû��ͤ���뤳�Ȥˤʤ�ޤ��������ʤ��Ȥˡ��������Τ������������ά��ȯ�����뤳�Ȥ���¿�ˤʤ����ɲä����桼������η����ά������ʬ�ϡ�����ʣ�����ۤɤ˲��ͤ�����Ȥϻפ��ޤ���
RESTRICT �� JOIN ���ץ����ϡ��䤤��碌���ץƥ��ޥ����η�̥������ο����������ޤ��� ���Ȥ��С��ʲ��Τ褦�ʷ����ζ礬����Ȥ��ޤ���
myboxes.description <<< box '((0,0), (1,1))'
�嵭�Τ褦�ʶ礬������˵��Ҥ���Ƥ����硢PostgreSQL �Ǥϡ����ζ�������� myboxes ��Υ����γ����¬����ɬ�פ�����ޤ���res_proc�ؿ��ϡ����Τʥǡ������ΰ�����Ȥꡢ��ư���������ͤ��֤�����Ͽ���줿�ʤ��Ǥ�CREATE FUNCTION��Ȥä�������줿�˴ؿ��Ǥʤ���Фʤ�ޤ����䤤��碌���ץƥ��ޥ�����ñ�ˤ��δؿ���((0,0), (1,1))�Ȥ����ѥ������Ϥ��ƸƤӽФ������η�̤˥�졼�����Υ�������ݤ����������δ����ͤ����ꤷ�ޤ���
Ʊ�ͤˡ��黻�Ҥα黻���ܤ�2�ĤȤ⥤�����ѿ�����äƤ����硢�䤤��碌���ץƥ��ޥ����Ϸ��η�̤Υ��������¬���ʤ���Фʤ�ޤ��� �ؿ� join_proc �ϡ���̥������δ����ͤ�����뤿��ˡ��ط����� 2 �ĤΥơ��֥�����ǿ��ˤ�äƾ軻���줿�̤���ư���������ͤ��֤��ޤ���
�ʲ��Τ褦�ʴؿ�������Ȥ��ޤ���
my_procedure_1 (MYBOXES.description, box '((0,0), (1,1))')
�����ơ��ʲ��Τ褦�ʱ黻�Ҥ�����Ȥ��ޤ���
MYBOXES.description === box '((0,0), (1,1))'
�嵭�δؿ��ȱ黻�ҤȤΰ㤤�ϡ�PostgreSQL ���黻�Ҥκ�Ŭ����ޤꡢ�黻�Ҥ��ƤӽФ��줿�Ȥ��ˡ��������֤����¤��뤿��˥���ǥå�������Ѥ��뤫�ɤ��������Ǥ��뤳�ȤǤ����������ʤ��顢�ؿ����Ŭ�����뤳�ȤϤ�������Ǥ���˽�������ޤ�������ˡ��黻�Ҥ�1�Ĥޤ���2�ĤޤǤȰ����ο������¤���Ƥ���Τ��Ф��ơ��ؿ��Ϥɤ�ʿ��ΰ����Ǥ��뤳�Ȥ��Ǥ��ޤ���
�ʲ��Υ��ޥ�ɤϡ�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 �ϡ����줾�� < ����� > �Ȥߤʤ���ޤ��� );