CREATE LANGUAGE

Name

CREATE LANGUAGE -- »õ·Î¿î ÀýÂ÷ ¾ð¾î¸¦ Á¤ÀÇÇÕ´Ï´Ù

Synopsis

CREATE [ PROCEDURAL ] LANGUAGE 
name

CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE 
name

    HANDLER 
call_handler
 [ VALIDATOR 
valfunction
 ]

¼³¸í

CREATE LANGUAGE¸¦ »ç¿ëÇÏ¿©, PostgreSQL»ç¿ëÀÚ´Â, PostgreSQLµ¥ÀÌÅͺ£À̽º·Î »õ·Î¿î ÀýÂ÷ ¾ð¾î¸¦ µî·ÏÇÒ ¼ö ÀÖ½À´Ï´Ù. À̾, ÇÔ¼ö¿Í Æ®¸®°Å ÇÁ·Î½ÃÀú´Â ÀÌ »õ·Î¿î ¾ð¾î·Î Á¤Àǵ˴ϴÙ. »ç¿ëÀÚ´Â »õ·Î¿î ¾ð¾î¸¦ µî·ÏÇÏ´Â PostgreSQL½´ÆÛÀ¯Àú ±ÇÇÑÀ» °®¾Æ¾ß ÇÕ´Ï´Ù.

CREATE LANGUAGE´Â, ¾ð¾î¸í°ú ¾ð¾î·Î ÀÛ¼ºµÈ ÇÔ¼öÀÇ ½ÇÇà¿¡ Ã¥ÀÓÀ» °¡Áö´Â È£Ãâ Çڵ鷯¸¦, È¿À²ÀûÀ¸·Î °ü·ÃÁþ½À´Ï´Ù. ¾ð¾î È£Ãâ Çڵ鷯¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â,Chapter 36À» ÂüÁ¶ÇØ ÁÖ¼¼¿ä.

CREATE LANGUAGEÄ¿¸àµå¿¡´Â 2 Á¾·ùÀÇ Çü½ÄÀÌ ÀÖ½À´Ï´Ù. 1¹øÂ° Çü½ÄÀº, »ç¿ëÀÚ´Â ÇÊ¿äÇÑ ¾ð¾îÀÇ À̸§¸¸À» ´ÜÁö ÁöÁ¤ÇÏ´Â °ÍÀÔ´Ï´Ù. ÀÌ °æ¿ì,PostgreSQL¼­¹ö´Â pg_pltemplate ½Ã½ºÅÛ Ä«Å»·Î±×¸¦ ÂüÁ¶ÇØ, ¿Ã¹Ù¸¥ ÆÄ¶ó¹ÌÅ͸¦ °áÁ¤ÇÕ´Ï´Ù. 2¹øÂ°ÀÇ Çü½Ä¿¡¼­´Â, À¯Àú´Â ¾ð¾î¸í°ú ¾ð¾îÀÇ ÇÔ²² ÆÄ¶ó¹ÌÅ͸¦ ÀÔ·ÂÇÕ´Ï´Ù. 2¹øÂ° Çü½Ä¿¡¼­,pg_pltemplate¿¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº ¾ð¾î¸¦ »ý¼ºÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù¸¸, ÀÌ Á¢±Ù¹ýÀº Àß ¾²¿©ÁöÁö ¾Ê°í ÀÖ½À´Ï´Ù.

ÁöÁ¤µÈ ¾ð¾î¸í¿¡ ´ëÀÀÇÏ´Âpg_pltemplateīŻ·Î±×ÀÇ Ç׸ñÀ» ¼­¹ö°¡ ã¾Æ³»¸é, Ä¿¸àµå¿¡ ¾ð¾îÀÇ ÆÄ¶ó¹ÌÅͰ¡ Æ÷ÇԵǾî ÀÖ¾ú´Ù°í ÇØµµ īŻ·Î±×ÀÇ µ¥ÀÌÅ͸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ µ¿ÀÛÀº ¾ð¾î Áö¿ø ÇÔ¼ö¿¡ °üÇÑ ¿À·¡µÈ Á¤º¸¸¦ Æ÷ÇÔÇÑ, ¿À·¡µÈ ´ýÇÁ ÆÄÀÏÀÇ ·ÎµùÀ» ´Ü¼øÈ­½Ãŵ´Ï´Ù.

ÆÄ¶ó¹ÌÅÍ

TRUSTED

TRUSTED´Â ¾ð¾îÀÇ È£Ãâ Çڵ鷯°¡ ¾ÈÀüÇÒ °ÍÀ» ÁöÁ¤ÇÕ´Ï´Ù. Áï, ±ÇÇÑÀÌ ¾ø´Â »ç¿ëÀÚ¿¡°Ô´Â ¾×¼¼½º Á¦ÇÑÀ» ¹«½ÃÇÏ´Â ±â´ÉÀ» ÀÏÀý ÁÖÁö ¾Ê´Â °ÍÀÔ´Ï´Ù. ¾ð¾îÀÇ µî·Ï½Ã¿¡ ¾ð¾îÀÇ Å°¿öµå¸¦ »ý·«ÇÑ °æ¿ì, PostgreSQLÀÇ ½´ÆÛÀ¯Àú ±ÇÇÑÀ» °¡Áø »ç¿ëÀÚ¸¸ÀÌ, »õ·Î¿î ÇÔ¼ö¸¦ »ý¼ºÇÏ´Â ÀÌ ¾ð¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

PROCEDURAL

À̰ÍÀº ³ëÀÌÁî ¿öµåÀÔ´Ï´Ù.

name

»õ·Î¿î ÀýÂ÷ ¾ð¾îÀÇ À̸§ÀÔ´Ï´Ù. ¾ð¾î¸íÀº ´ë¹®ÀÚ/¼Ò¹®ÀÚÀÇ ±¸º°ÀÌ ¾ø½À´Ï´Ù. À̸§Àº µ¥ÀÌÅͺ£À̽º ³»ÀÇ ¾ð¾î Áß¿¡¼­ À¯ÀϹ«ÀÌ ÇÑ °ÍÀ̾î¾ß ÇÕ´Ï´Ù.

ÈĹæ ȣȯÀ» º¸°ü À¯ÁöÇϱâ À§ÇØ, ÀÌ À̸§À» ´ÜÀÏ ÀοëºÎÈ£·Î µÑ·¯½Ò ¼öµµ ÀÖ½À´Ï´Ù.

HANDLER call_handler

call_handler ´Â, ÀýÂ÷ ¾ð¾î ÇÔ¼ö¸¦ ½ÇÇàÇϱâ À§ÇØ È£ÃâµÇ´Â, »çÀü¿¡ µî·ÏÇØµÐ ÇÔ¼öÀÇ À̸§ ÀÔ´Ï´Ù. ÀýÂ÷ ¾ð¾îÀÇ È£Ãâ Çڵ鷯´Â, ¹öÀü 1 È£Ã⠱Ծ࿡ ÁذÅÇÏ¿©, C¿Í °°Àº ÄÄÆÄÀÏµÈ ¾ð¾î·Î ÀÛ¼ºµÇ¾î¾ß ÇÕ´Ï´Ù. Àμö¸¦ °®Áö ¾Ê°í, language_handlerÇüÀ» ¹ÝȯÇÏ´Â ÇÔ¼ö·Î¼­PostgreSQL¿¡ µî·ÏµÇ¾î¾ß ÇÕ´Ï´Ù. language_handlerÇüÀº, ´ÜÁö ÇÔ¼ö¸¦ È£ÃâÇÏ´Â Çڵ鷯·Î¼­, ½Äº°Çϴµ¥ »ç¿ëÇÏ´Â Ç÷¹À̽ºÈ¦´õÇüÀÔ´Ï´Ù.

VALIDATOR valfunction

valfunction ´Â, »çÀü¿¡ µî·ÏµÈ °ËÁõ¿ë ÇÔ¼öÀÇ À̸§ÀÔ´Ï´Ù. »õ·Î¿î ÇÔ¼ö°¡ ÇØ´ç ¾ð¾î·Î ÀÛ¼ºµÇ¾úÀ» °æ¿ì, ±× ÇÔ¼ö¸¦ °ËÁõÇϱâ À§Çؼ­ È£Ã⠵˴ϴÙ. °ËÁõ¿ë ÇÔ¼ö°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì, »õ·Î¿î ÇÔ¼ö´Â ÀÛ¼º½Ã¿¡ üũµÇÁö ¾Ê½À´Ï´Ù. °ËÁõ¿ë ÇÔ¼ö´Â,oidÇüÀÇ Àμö 1°³Ã븦 ÃëÇØ¾ß ÇÕ´Ï´Ù. ÀÌ Àμö´Â ÀÛ¼ºµÇ´Â ÇÔ¼öÀÇ OID°¡ µË´Ï´Ù. ¶Ç, Åë»óvoidÇüÀ» ¹ÝȯÇÕ´Ï´Ù.

°ËÁõ¿ë ÇÔ¼ö´Â, Åë»ó, ÇÔ¼ö°¡ ¹®¹ýÀûÀ¸·Î ¿ÇÀºÁö¸¦ °Ë»çÇϱâ À§Çؼ­ »ç¿ëÇÕ´Ï´Ù¸¸, ¿¹¸¦µé¾î, ¾ð¾î°¡ ƯÁ¤ÇÑ ÀμöÇüÀ» ó¸®ÇÒ ¼ö ¾ø´Â °Í°ú °°Àº ÇÔ¼öÀÇ ÇÁ·ÎÆÛƼ °Ë»çµµ °¡´ÉÇÕ´Ï´Ù. ¿¡·¯¸¦ ÅëÁöÇÏ·Á¸é , °ËÁõ¿ë ÇÔ¼ö·Îereport()ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ÇÔ¼öÀÇ ¹Ýȯ°ªÀº ¹«½ÃµË´Ï´Ù.

¼­¹ö°¡ pg_pltemplate¿¡ ÀÖ´Â ÁöÁ¤µÈ ¾ð¾î À̸§¿¡ ´ëÇÑ Ç׸ñÀ» °®´Â °æ¿ì, TRUSTED¿É¼Ç°ú Áö¿ø ÇÔ¼öÀÇ À̸§Àº ¹«½ÃµË´Ï´Ù.

ÁÖ¼®

createlang ÇÁ·Î±×·¥Àº, CREATE LANGUAGE Ä¿¸àµåÀÇ °£´ÜÇÑ ·¡ÆÛÀÔ´Ï´Ù. À̰ÍÀ» »ç¿ëÇØ ½© Ä¿¸àµå ¶óÀο¡¼­ ÀýÂ÷¾ð¾î¸¦ ½±°Ô ¼³Ä¡ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀýÂ÷ ¾ð¾î¸¦ »èÁ¦ÇÏ·Á¸é , DROP LANGUAGE , ¶Ç´Â droplang À» »ç¿ëÇØ ÁÖ¼¼¿ä(ÈÄÀÚ¸¦ ±ÇÇÕ´Ï´Ù).

½Ã½ºÅÛ Ä«Å»·Î±×pg_language( Section 43.20¸¦ ÂüÁ¶Çϼ¼¿ä)¿¡´Â, ÇöÀç ¼³Ä¡µÈ ¾ð¾î¿¡ °üÇÑ Á¤º¸°¡ ±â·ÏµÇ°í ÀÖ½À´Ï´Ù. ¶ÇÇÑ,createlang¿¡´Â ¼³Ä¡µÈ ¾ð¾î¸¦ ¿­°ÅÇÏ´Â ¿É¼ÇÀÌ ÀÖ½À´Ï´Ù.

ÀýÂ÷¾ð¾î·Î ÇÔ¼ö¸¦ »ý¼ºÇÏ·Á¸é, »ç¿ëÀÚ´Â ¾ð¾î¿¡ ´ëÇÑ USAGE±ÇÇÑÀ» °®¾Æ¾ß ÇÕ´Ï´Ù. µðÆúÆ®¿¡¼­´Â, ½Å·ÚµÈ ¾ð¾îÀÇUSAGE´ÂPUBLIC¿¡(Áï Àü¿ø¿¡°Ô) ºÎ¿©µÇ°í ÀÖ½À´Ï´Ù. À̰ÍÀº Çʿ信 µû¶ó¼­ ¾ø¾Ù ¼ö°¡ ÀÖ½À´Ï´Ù.

ÀýÂ÷ ¾ð¾î´Â °¢ µ¥ÀÌÅͺ£À̽º¿¡ ±¹¼ÒÀûÀÔ´Ï´Ù. ±×·¯³ª, ¾ð¾î´Â template1µ¥ÀÌÅͺ£À̽º¿¡ ¼³Ä¡µÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °æ¿ì, ±× ÈÄ¿¡ ÀÛ¼ºµÈ ¸ðµç µ¥ÀÌŸº£À̽º³»¿¡¼­ ÀÚµ¿ÀûÀ¸·Î ±× ¾ð¾î¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

¼­¹ö°¡ pg_pltemplate³»¿¡ ±× ¾ð¾î¿¡ °üÇÑ Ç׸ñÀ» °¡Áö°í ÀÖÁö ¾ÊÀº °æ¿ì¿¡´Â, È£Ãâ Çڵ鷯 ÇÔ¼ö¿Í °ËÁõ ÇÔ¼ö(¸¸¾à ÀÖÀ¸¸é)°¡ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù. ±×·¯³ª, ±× Ç׸ñÀÌ ÀÖ¾ú´Ù°í ÇØµµ, ÇÔ¼ö°¡ Á¸ÀçÇϰí ÀÖ´Ù°í´Â ÇÒ ¼ö ¾ø½À´Ï´Ù. µ¥ÀÌŸº£À̽º³»¿¡ Á¸ÀçÇϰí ÀÖÁö ¾ÊÀ¸¸é ÀÚµ¿ÀûÀ¸·Î Á¤Àǵ˴ϴÙ. (¾ð¾î¸¦ ½ÇÇàÇÏ´Â °øÀ¯ ¶óÀ̺귯¸®°¡ ¼³Ä¡¸¦ ÀÌ¿ëÇÒ ¼ö ¾ø´Â °æ¿ì, À̰Ϳ¡ ÀÇÇØCREATE LANGUAGE°¡ ½ÇÆÐÇÒ ¼ö ÀÖ½À´Ï´Ù. )

PostgreSQL 7.3 º¸´Ù ÀüÀÇ ¹öÀü¿¡¼­´Â, Çڵ鷯 ÇÔ¼ö°¡ ¹ÝȯÇÏ´Â Ç÷¹À̽ºÈ¦´õ ÇüÀ» language_handlerº¸´Ù´Â opaque·Î ¼±¾ðÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù. ¿À·¡µÈ ÇÔ¼ö ÆÄÀÏÀÇ ·ÎµùÀ» Áö¿øÇÏ·Á¸é, CREATE LANGUAGE°¡ opaque¸¦ ¹ÝȯÇÏ´Â °ÍÀ¸·Î ¼±¾ðµÈ ÇÔ¼ö¸¦ ¹Þ¾ÆµéÀÔ´Ï´Ù. ±×·¯³ª, ÁÖÀÇ ¸Þ¼¼Áö¸¦ ¹ßÇàÇÏ¿©, ¼±¾ðµÈ ÇÔ¼öÀÇ ¹ÝȯÇüÀ» language_handler·Î º¯È¯ÇÕ´Ï´Ù.

¿¹

Ç¥ÁØÀûÀÎ ÀýÂ÷ ¾ð¾î¸¦ ÀÛ¼ºÇÏ´Â Ãßõ ¹æ¹ýÀº ¾Æ·¡¿Í °°ÀÌ ½Ç½ÃÇÏ´Â °ÍÀÔ´Ï´Ù.

CREATE LANGUAGE plpgsql;

pg_pltemplateīŻ·Î±×³»¿¡ Á¸ÀçÇÏÁö ¾Ê´Â ¾ð¾î¿¡¼­´Â, ÀÌÇÏ¿Í °°Àº ½ÃÄö½º°¡ ÇÊ¿äÇÕ´Ï´Ù.

CREATE FUNCTION plsample_call_handler() RETURNS language_handler
    AS '$libdir/plsample'
    LANGUAGE C;
CREATE LANGUAGE plsample
    HANDLER plsample_call_handler;

ȣȯ¼º

CREATE LANGUAGE´ÂPostgreSQLÀÇ È®ÀåÀÔ´Ï´Ù.

°ü·Ã Ç׸ñ

ALTER LANGUAGE , CREATE FUNCTION , DROP LANGUAGE , GRANT , REVOKE , createlang , droplang