CREATE OPERATOR CLASS

Name

CREATE OPERATOR CLASS -- »õ·Î¿î ¿¬»êÀÚ Å¬·¡½º¸¦ Á¤ÀÇÇÑ´Ù

Synopsis

CREATE OPERATOR CLASS 
name
 [ DEFAULT ] FOR TYPE 
data_type
 USING 
index_method
 AS
  {  OPERATOR 
strategy_number
 
operator_name
 [ ( 
op_type
, 
op_type
 ) ] [ RECHECK ]
   | FUNCTION 
support_number
 
funcname
 ( 
argument_type
 [, ...] )
   | STORAGE 
storage_type

  } [, ... ]

¼³¸í

CREATE OPERATOR CLASS´Â »õ·Î¿î ¿¬»êÀÚ Å¬·¡½º¸¦ »ý¼ºÇÕ´Ï´Ù. ¿¬»êÀÚ Å¬·¡½º´Â, ƯÁ¤ÀÇ µ¥ÀÌÅÍÇüÀÌ À妽º·Î ¾î¶»°Ô »ç¿ëµÇ´ÂÁö¸¦ Á¤ÀÇÇÕ´Ï´Ù. ¿¬»êÀÚ Å¬·¡½º¿¡ ÀÇÇØ, µ¥ÀÌÅÍÇü ¹× À妽º ¸Þ¼ÒµåÀÇ Æ¯Á¤ÀÇ ¿ªÇÒ È¤Àº"Àü·«"¿¡, ¾î´À ¿¬»êÀÚ¸¦ »ç¿ëÇÒÁö°¡ ÁöÁ¤µË´Ï´Ù. ¶ÇÇÑ, À妽ºÀÇ ¿­¿¡ ´ëÇØ¼­ ¿¬»êÀÚ Å¬·¡½º°¡ ¼±ÅÃµÉ ½Ã, ¿¬»êÀÚ Å¬·¡½º´Â À妽º ¸Þ¼Òµå°¡ »ç¿ëÇÏ´Â Áö¿ø ÇÁ·Î½ÃÀú¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¿¬»êÀÚ Å¬·¡½º¿¡¼­ »ç¿ëµÇ´Â ¸ðµç ¿¬»êÀÚ ¹× ÇÔ¼ö´Â, ¿¬»êÀÚ Å¬·¡½º°¡ »ý¼ºµÇ±â Àü¿¡ Á¤ÀǵǾî¾ß ÇÕ´Ï´Ù.

½ºÅ°¸¶¸íÀÌ Á¦½ÃµÈ °æ¿ì, ¿¬»êÀÚ Å¬·¡½º´Â ÁöÁ¤µÈ ½ºÅ°¸¶¿¡¼­ »ý¼ºµË´Ï´Ù. ½ºÅ°¸¶¸íÀÌ Á¦½ÃµÇÁö ¾ÊÀº °æ¿ì, ¿¬»êÀÚ Å¬·¡½º´Â ÇöÀçÀÇ ½ºÅ°¸¶¿¡¼­ »ý¼ºµË´Ï´Ù. ´Ù¸¥ À妽º ¸Þ¼Òµå¿¡ »ç¿ëÇÏ´Â °æ¿ì¸¸, °°Àº ½ºÅ°¸¶³»ÀÇ 2°³ÀÇ ¿¬»êÀÚ Å¬·¡½º¿¡ °°Àº À̸§À» ºÙÀÏ ¼ö°¡ ÀÖ½À´Ï´Ù.

¿¬»êÀÚ Å¬·¡½º¸¦ Á¤ÀÇÇÑ »ç¿ëÀÚ°¡, ¿¬»êÀÚ Å¬·¡½ºÀÇ ¼ÒÀ¯ÀÚ°¡ µË´Ï´Ù. ÇöÀç, ¿¬»êÀÚ Å¬·¡½º¸¦ »ý¼ºÇÏ·Á¸é, ½´ÆÛÀ¯Àú¿©¾ß¸¸ ÇÕ´Ï´Ù. (À߸øµÈ ¿¬»êÀÚ Å¬·¡½º¸¦ Á¤ÀÇÇϸé, È¥¶õÀ» ÀÏÀ¸Å°°í ¼­¹ö¸¦ °íÀ峪°Ô ÇϹǷΠÀÌ·¯ÇÑ Á¦ÇÑÀ» µÓ´Ï´Ù.)

ÇöÀç,CREATE OPERATOR CLASS¿¡¼­´Â, À妽º ¸Þ¼Òµå¿¡ ÇÊ¿äÇÑ ¸ðµç ¿¬»êÀÚ ¹× ÇÔ¼ö°¡ ¿¬»êÀÚ Å¬·¡½º Á¤ÀÇ¿¡ Æ÷ÇԵǾî ÀÖ´ÂÁö ¾î¶²Áö, ¶Ç, ¿¬»êÀÚ³ª ÇÔ¼öÀÇ Çü½ÄÀ¸·Î ÀÚ½ÅÀÇ Á¤ÇÕ¼ºÀ» °¡Áö°í ÀÖ´ÂÁö¸¦ °Ë»çÇÏÁö ¾Ê½À´Ï´Ù. À¯È¿ÇÑ ¿¬»êÀÚ Å¬·¡½º¸¦ Á¤ÀÇÇÏ´Â °ÍÀº »ç¿ëÀÚÀÇ Ã¥ÀÓÀÔ´Ï´Ù.

»ó¼¼ÇÑ Á¤º¸¿¡ ´ëÇØ¼­´ÂSection 33.14À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

¸Å°³º¯¼ö

name

»ý¼ºÇÏ´Â ¿¬»êÀÚ Å¬·¡½ºÀÇ À̸§ÀÔ´Ï´Ù. ¿¬»êÀÚ Å¬·¡½º¸íÀº, °ËÁõÀ» °ÅÄ£ ½ºÅ°¸¶¸íÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù.

DEFAULT

DEFAULT¸¦ ºÙÀ̸é, ¿¬»êÀÚ Å¬·¡½º´Â µ¥ÀÌÅÍÇüÀÇ µðÆúÆ® ¿¬»êÀÚ Å¬·¡½º°¡ µË´Ï´Ù. ¿¬»êÀÚ Å¬·¡½º 1°³¸¸ÀÌ, ƯÁ¤ÀÇ µ¥ÀÌÅÍÇü ¹× À妽º ¸Þ¼ÒµåÀÇ µðÆúÆ®°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.

data_type

ÀÌ ¿¬»êÀÚ Å¬·¡½º¸¦ »ç¿ëÇÏ´Â ¿­ÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù.

index_method

ÀÌ ¿¬»êÀÚ Å¬·¡½º¸¦ »ç¿ëÇÏ´Â À妽º ¸Þ¼ÒµåÀÇ À̸§ÀÔ´Ï´Ù.

strategy_number

¿¬»êÀÚ Å¬·¡½º¿¡ ¿¬°üµÈ ¿¬»êÀÚÀÇ À妽º ¸Þ¼ÒµåÀÇ Àü·« ¹øÈ£ÀÔ´Ï´Ù.

operator_name

¿¬»êÀÚ Å¬·¡½º¿¡ °ü·ÃµÈ ¿¬»êÀÚÀÇ À̸§(°ËÁõÀ» °ÅÄ£ ½ºÅ°¸¶)ÀÔ´Ï´Ù.

op_type

¿¬»êÀÚÀÇ ÀÔ·Â µ¥ÀÌÅÍÇü, ȤÀº, ¿ÞÂÊ ´ÜÇ× ¿¬»êÀÚ³ª ¿À¸¥ÂÊ ´ÜÇ× ¿¬»êÀÚ¸¦ ³ªÅ¸³»´ÂNONE¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¿¬»êÀÚ Å¬·¡½ºÀÇ µ¥ÀÌÅÍÇü°ú °°Àº Åë»óÀÇ °æ¿ì, ÀÔ·Â µ¥ÀÌÅÍÇüÀº »ý·« °¡´ÉÇÕ´Ï´Ù.

RECHECK

RECHECK°¡ Á¸ÀçÇÏ´Â °æ¿ì, À妽º°¡ ÀÌ ¿¬»êÀÚ¿¡ ´ëÇØ "lossy"ÀÓÀ» ³ªÅ¸³À´Ï´Ù. µû¶ó¼­, À妽º¸¦ »ç¿ëÇÏ¿© ÃßÃâµÈ ÇàÀÌ ÀÌ ¿¬»êÀÚ¸¦ Æ÷ÇÔÇÑ Á¶°Ç±¸¸¦ ½ÇÁ¦·Î ÃæÁ·½Ã۰í ÀÖ´ÂÁö¸¦ °ËÁõÇϱâ À§Çؼ­, ±× ÇàÀ» Àç°Ë»çÇØ¾ß ÇÕ´Ï´Ù.

support_number

¿¬»êÀÚ Å¬·¡½º¿¡ °ü·ÃµÈ ÇÔ¼ö¿ëÀÇ À妽º ¸Þ¼ÒµåÀÇ Áö¿ø ÇÁ·Î½ÃÀúÀÇ ¹øÈ£ÀÔ´Ï´Ù.

funcname

¿¬»êÀÚ Å¬·¡½º¿ëÀÇ À妽º ¸Þ¼ÒµåÀÇ ¼­Æ÷Æ® ÇÁ·Î½ÃÀú°¡ µÇ´Â ÇÔ¼öÀÇ À̸§(°ËÁõÀ» °ÅÄ£ ½ºÅ°¸¶)ÀÔ´Ï´Ù.

argument_types

ÇÔ¼öÀÇ ¸Å°³º¯¼öÀÇ µ¥ÀÌÅÍÇüÀÔ´Ï´Ù.

storage_type

À妽º¿¡ ½ÇÁ¦·Î ÀúÀåµÇ´Â µ¥ÀÌÅÍÇüÀÔ´Ï´Ù. Åë»ó, ÀÌ µ¥ÀÌÅÍÇüÀº ¿­ÀÇ µ¥ÀÌÅÍÇü°ú °°½À´Ï´Ù. ±×·¯³ª, ´Ù¸¥ µ¥ÀÌÅÍÇüÀ» Çã°¡ÇÏ´Â À妽º ¸Þ¼Òµåµµ Á¸ÀçÇÕ´Ï´Ù(Çö½ÃÁ¡¿¡¼­´Â GIN¿Í GiST). À妽º ¸Þ¼Òµå°¡ ´Ù¸¥ µ¥ÀÌÅÍÇüÀÇ »ç¿ëÀ» Çã°¡Çϰí ÀÖÁö ¾ÊÀ¸¸é,STORAGEÀýÀ» ¹Ýµå½Ã »ý·«ÇØ¾ß ÇÕ´Ï´Ù.

OPERATOR,FUNCTION,STORAGE´Â ÀÓÀÇÀÇ Â÷·Ê·Î ±â¼úÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÁÖ¼®

À妽º ±â±¸´Â, »ç¿ëÇϱâ Àü¿¡ ÇÔ¼ö¿¡ °üÇÑ ¾×¼¼½º±ÇÇÑÀ» °Ë»çÇÏÁö ¾ÊÀ¸¹Ç·Î, ÇÔ¼ö³ª ¿¬»êÀÚ¸¦ ¿¬»êÀÚ Å¬·¡½º¿¡ Æ÷ÇÔÇÏ´Â °ÍÀº, PUBLIC¿¡ ½ÇÇà±ÇÇÑÀ» ÁÖ´Â °Í°ú °°½À´Ï´Ù. Åë»ó, ¿¬»êÀÚ Å¬·¡½º¿¡¼­ À¯¿ëÇÑ Á¾·ùÀÇ ÇÔ¼ö¿¡¼­´Â À̰ÍÀº ¹®Á¦°¡ µÇÁö ¾Ê½À´Ï´Ù.

¿¬»êÀÚ´Â SQL ÇÔ¼ö·Î Á¤ÀÇ µÇÁö ¾Ê¾Æ¾ß ÇÕ´Ï´Ù. SQL ÇÔ¼ö´Â Äõ¸®¸¦ È£ÃâÇØ ÀζóÀÎ µÉ °ÍÀ̹ǷÎ, ÃÖÀûÈ­´Â À妽º¸¦ ÀÏÄ¡ÇÏ´Â Äõ¸®¸¦ ÀνÄÇÒ ¼ö ¾ø°Ô µË´Ï´Ù.

¿¹

¾Æ·¡ÀÇ Ä¿¸àµå ¿¹¿¡¼­´Â,_int4µ¥ÀÌÅÍÇü(int4ÀÇ ¹è¿­)ÀÇ GiST À妽º ¿¬»êÀÚ Å¬·¡½º¸¦ Á¤ÀÇÇϰí ÀÖ½À´Ï´Ù. ÀÌ ¿¹ÀÇ »ó¼¼ÇÑ °Í¿¡ ´ëÇÏ¿©´Â,contrib/intarray/¸¦ ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

CREATE OPERATOR CLASS gist__int_ops
    DEFAULT FOR TYPE _int4 USING gist AS
        OPERATOR        3       &&,
        OPERATOR        6       =       RECHECK,
        OPERATOR        7       @>,
        OPERATOR        8       <@,
        OPERATOR        20      @@ (_int4, query_int),
        FUNCTION        1       g_int_consistent (internal, _int4, int4),
        FUNCTION        2       g_int_union (bytea, internal),
        FUNCTION        3       g_int_compress (internal),
        FUNCTION        4       g_int_decompress (internal),
        FUNCTION        5       g_int_penalty (internal, internal, internal),
        FUNCTION        6       g_int_picksplit (internal, internal),
        FUNCTION        7       g_int_same (_int4, _int4, internal);

ȣȯ¼º

CREATE OPERATOR CLASS´ÂPostgreSQLÀÇ È®ÀåÀÔ´Ï´Ù. SQLÇ¥ÁØ¿¡´ÂCREATE OPERATOR CLASS¹®ÀÌ ¾ø½À´Ï´Ù.

°ü·Ã Ç׸ñ

ALTER OPERATOR CLASS , DROP OPERATOR CLASS