| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 33. SQL È®Àå | Fast Forward | Next |
¿¬»êÀÚ´Â, ½ÇÁ¦ÀÇ ÀÛ¾÷À» ½Ç½ÃÇÏ´Â ±âº» ÇÔ¼ö¸¦ È£ÃâÇÏ´Â "±¸¹®»óÀÇ Àå½Ä"ÀÔ´Ï´Ù. ±×·¯´Ï±î, ¿¬»êÀÚ¸¦ ÀÛ¼ºÇϱâ Àü¿¡ ¿ì¼± ÀÌ ±âº» ÇÔ¼ö¸¦ ÀÛ¼ºÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ±×·¯³ª, ¿¬»êÀÚ´Â ´Ü¼øÇÑ ±¸¹®»óÀÇ Àå½ÄÀÌ ¾Æ´Õ´Ï´Ù . Äõ¸® Ç÷¡³Ê¿¡°¡ ¿¬»êÀÚ¸¦ »ç¿ëÇÏ´Â Äõ¸®ÀÇ ÃÖÀûÈÇÏ´Â °ÍÀ» µµ¿ÍÁÖ´Â, Ãß°¡ Á¤º¸¸¦ ±³È¯Çϱ⠶§¹®ÀÔ´Ï´Ù. ´ÙÀ½ ¼½¼Ç¿¡¼´Â, ÀÌ Ãß°¡ Á¤º¸¿¡ ´ëÇØ ÁßÁ¡ÀûÀ¸·Î ¼³¸íÇÕ´Ï´Ù.
PostgreSQL¿¡¼´Â ¿ÞÂÊ ´ÜÇ× ¿¬»êÀÚ, ¿À¸¥ÂÊ ´ÜÇ× ¿¬»êÀÚ, 2Ç׿¬»êÀÚ¸¦ Áö¿øÇϰí ÀÖ½À´Ï´Ù. ¿¬»êÀÚ°¡ °úºÎÇ쵃 ¼ö ÀÖ½À´Ï´Ù. Áï, °°Àº ¿¬»êÀÚ¸íÀ» ¼ö¿Í ¿ÀÆÛ·£µåÀÇ ÇüŰ¡ ´Ù¸¥ ¿¬»êÀÚ¿¡ ´ëÇØ¼ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Äõ¸®°¡ ½ÇÇàµÇ¸é, ½Ã½ºÅÛÀº ÁÖ¾îÁø ¿ÀÆÛ·£µåÀÇ ¼ö¿Í ÇüÅ·ΠȣÃâ ÇÒ ¿¬»êÀÚ¸¦ °áÁ¤ÇÕ´Ï´Ù.
ÀÌÇÏ¿¡ 2°³ÀÇ º¹¼Ò¼öÀÇ °¡»êÀ» ½Ç½ÃÇÏ´Â ¿¬»êÀÚ¸¦ ÀÛ¼ºÇÏ´Â ¿¹¸¦ ³ªÅ¸³À´Ï´Ù. ÀÌ¹Ì complexÇüÀÇ Á¤ÀÇ(Section 33.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 = +
);
À̰ÍÀ¸·Î ÀÌÇÏ¿Í °°Àº Äõ¸®¸¦ ½ÇÇàÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.
SELECT (a + b) AS c FROM test_complex;
c
-----------------
(5.2,6.05)
(133.42,144.95)
¿©±â¿¡¼´Â 2Ç׿¬»êÀÚ¸¦ ¾î¶»°Ô ÀÛ¼ºÇÏ´ÂÁö¸¦ ³ªÅ¸³Â½À´Ï´Ù. ´ÜÇ× ¿¬»êÀÚ¸¦ ÀÛ¼ºÇÏ·Á¸é, ´ÜÁö leftarg(¿ÞÂÊ ´ÜÇ×ÀÇ °æ¿ì) ȤÀº rightarg(¿ìÃø ´ÜÇ×ÀÇ °æ¿ì)¸¦ »ý·« ÇÒ »ÓÀÔ´Ï´Ù. procedure±¸¿Í Àμö¿ëÀÇ ±¸¸¸ÀÌ CREATE OPERATOR¿¡¼ÀÇ Çʼö Ç׸ñÀÔ´Ï´Ù. ¿¹·Î °¡¸®Å² commutator±¸´Â »ý·« °¡´ÉÇØ, Äõ¸® ÃÖÀûÈÀÇ ÈùÆ®°¡ µË´Ï´Ù. commutator³ª ±× ¿ÜÀÇ ÃÖÀûÈÀÇ ÈùÆ®¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ °ÍÀº ´ÙÀ½ ¼½¼Ç¿¡¼ ¼³¸íÇÕ´Ï´Ù.