| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 41. ¼¹ö ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º | Fast Forward | Next |
SPI_execute³ª À¯»çÇÑ ÇÔ¼ö¿¡ ÀÇÇØ »ý¼ºµÈ Çà ¼¼Æ®¸¦ ÇØÁ¦ÇÑ´Ù
PostgreSQL´Â,
¸Þ¸ð¸® ÄÁÅØ½ºÆ®
Áß¿¡ ¸Þ¸ð¸®¸¦ È®º¸ÇÕ´Ï´Ù.
À̰ÍÀº, ¿©·¯ Àå¼Ò¿¡¼, ÇÊ¿äÇÑ À¯È¿±â°£ÀÌ °¢°¢ ´Ù¸¥ ÇÒ´çÀ» °ü¸®ÇÏ´Â Æí¸®ÇÑ ¹æ¹ýÀ» Á¦°øÇÕ´Ï´Ù.
¹®¸ÆÀ» ÆÄ±«ÇÏ´Â °ÍÀ¸·Î, °Å±â¼ ÇÒ´çÇÒ ¼ö ÀÖ´ø ¸ðµç ¸Þ¸ð¸®¸¦ ÇØ¹æÇÕ´Ï´Ù.
µû¶ó¼, ¸Þ¸ð¸® ´©¼ö¸¦ ¸·±â À§ÇÑ °³°³ÀÇ °´Ã¼ÀÇ ÃßÀûÀ» À¯ÁöÇÏ´Â °ÍÀº ºÒÇÊ¿äÇÕ´Ï´Ù.
±× ´ë½Å, »ó´ëÀûÀ¸·Î ¼Ò·®ÀÇ ¹®¸ÆÀ» °ü¸®ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
palloc¿Í °ü·ÃÇÏ´Â ÇÔ¼ö´Â "ÇöÀçÀÇ"¹®¸ÆÀ¸·ÎºÎÅÍ ¸Þ¸ð¸®¸¦ È®º¸ÇÕ´Ï´Ù.
SPI_connect´Â »õ·Ó°Ô ¸Þ¸ð¸®ÄÁÅØ½ºÆ®¸¦ ÀÛ¼ºÇØ, ±×°ÍÀ» ÇöÀçÀÇ ¹®¸ÆÀ¸·Î ÇÕ´Ï´Ù.
SPI_finish´Â Á÷ÀüÀÇ ÇöÀçÀÇ ¸Þ¸ð¸®ÄÁÅØ½ºÆ®¸¦ µÇµ¹·Á, SPI_connect·Î ÀÛ¼ºµÈ ¹®¸ÆÀ» ÆÄ±«ÇÕ´Ï´Ù.
ÀÌ·¯ÇÑ µ¿ÀÛ¿¡ ÀÇÇØ, ÇÁ·Î½ÃÀú³»¿¡¼ ÇÒ´çÀ» ÇÏ´Â ÀϽÃÀûÀÎ ¸Þ¸ð¸®°¡ ÇÁ·Î½ÃÀúÀÇ Á¾·á½Ã¿¡ ȸ¼öµÇ¾î ¸Þ¸ð¸® ´©¼ö°¡ ¹æÁöµÇ´Â °ÍÀÌ º¸ÁõµË´Ï´Ù.
±×·¯³ª, (ÂüÁ¶ ÀεµÀÇ µ¥ÀÌÅÍÇüÀÇ °ªÀ̶ó°í ÇÏ´Â) ÇÁ·Î½ÃÀú¸¦ ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø ¸Þ¸ð¸® ³»ÀÇ °´Ã¼¸¦ µ¹·ÁÁÙ Çʿ䰡 ÀÖ´Â °æ¿ì,
Àû¾îµµ SPI¿¡ Á¢¼ÓÇϰí ÀÖÁö ¾Ê´Â µ¿¾ÈÀº, palloc¸¦ »ç¿ëÇØ ¸Þ¸ð¸®¸¦ È®º¸ÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.
À̰ÍÀ» ½ÃÇàÇϸé, ±× °´Ã¼´Â SPI_finish·Î ÇØÁ¦µÇ¾î ¹ö·Á, ÇÁ·Î½ÃÀú°¡ ¿Ã¹Ù¸£°Ô µ¿ÀÛÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.
ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é, SPI_palloc¸¦ »ç¿ëÇØ, ¹Ýȯ°ªÀÌ µÇ´Â °´Ã¼¿ëÀÇ ¸Þ¸ð¸®¸¦ È®º¸ÇØ ÁÖ¼¼¿ä.
SPI_palloc´Â "»óÀ§ ÁýÇàÀÚ ÄÁÅØ½ºÆ®"³»¿¡ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÕ´Ï´Ù.
ÀÌ ¸Þ¸ð¸®ÄÁÅØ½ºÆ®´Â, SPI_connect°¡ ºÒ·Á °£ ½ÃÁ¡¿¡ µÎ¾î ÇöÀçÀÇ ¹®¸ÆÀ̾ú´ø °ÍÀ̸ç,
ÇÁ·Î½ÃÀúÀÇ ¹Ýȯ°ª¿ëÀÇ ¹®¸ÆÀ¸·Î ÇØ È®½ÇÈ÷ ¿Ã¹Ù¸¥ °ÍÀÔ´Ï´Ù.
ÇÁ·Î½ÃÀú°¡ SPI¿¡ ¹ÌÁ¢¼ÓÀÎ »óÅ·ΠSPI_palloc °¡ ºÒ·Á °¡¸é, º¸Åë palloc¿Í °°ÀÌ µ¿ÀÛÇÕ´Ï´Ù.
ÇÁ·Î½ÃÀú°¡ SPI ¸Å´ÏÀú¿¡ Á¢¼ÓÇϱâ Àü¿¡¼´Â, ÇöÀçÀÇ ¸Þ¸ð¸®ÄÜÅ×Ű½ºÆ®´Â »óÀ§ ÁýÇàÀÚ ÄÁÅØ½ºÆ®À̸ç,
±× ¶§¹®¿¡, ÇÁ·Î½ÃÀú·ÎºÎÅÍ palloc³ª SPI À¯Æ¿¸®Æ¼ ÇÔ¼ö °æÀ¯·Î µÈ ÇÒ´çÀº ÀÌ ¹®¸ÆÀ¸·Î ÀÛ¼ºµË´Ï´Ù.
SPI_connect°¡ ºÒ·Á °¡¸é, SPI_connect¿¡ ÀÇÇØ ÀÛ¼ºµÇ´Â ÇÁ·Î½ÃÀú °íÀ¯ÀÇ ¹®¸ÆÀÌ ÇöÀçÀÇ ¹®¸Æ¿¡ ÀÛ¼ºµË´Ï´Ù.
palloc,repalloc,
SPI À¯Æ¿¸®Æ¼ ÇÔ¼ö(SPI_copytuple, SPI_returntuple, SPI_modifytuple,
SPI_paÁ¦loc´Â Á¦¿ÜÇÕ´Ï´Ù)¿¡ ÀÇÇØ ÀÛ¼ºµÇ´Â ÇÒ´çÀº ¸ðµÎ, ÀÌ ¹®¸Æ³»¿¡ ÀÛ¼ºµË´Ï´Ù.
ÇÁ·Î½ÃÀú°¡ SPI ¸Å´ÏÀú·ÎºÎÅÍ(SPI_finish°æÀ¯·Î) Áß´ÜÇßÀ» ¶§,
ÇöÀçÀÇ ¹®¸ÆÀº »óÀ§ ÁýÇàÀÚ ÄÁÅØ½ºÆ®¿¡ µÇµ¹·ÁÁ® ÇÁ·Î½ÃÁ®¸Þ¸ð¸®ÄÁÅØ½ºÆ®³»¿¡¼ ÇÒ´çÇÒ ¼ö ÀÖ¾ú´ø ¸Þ¸ð¸®´Â ¸ðµÎ ÇØÁ¦µÇ¾î µÎ ¹ø ´Ù½Ã »ç¿ëÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.
º»Àý¿¡¼ ¼³¸íÇÏ´Â ÇÔ¼ö´Â ¸ðµÎ, Á¢¼Ó »óÅÂ, ¹ÌÁ¢¼Ó »óÅÂÀÇ ¾î´À ÂÊÀÇ ÇÁ·Î½ÃÀú·ÎºÎÅÍµç »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¹ÌÁ¢¼ÓÀÇ ÇÁ·Î½ÃÀú¿¡¼´Â, ¹èÈÄ¿¡ ÀÖ´Â Åë»óÀÇ ¼¹ö ÇÔ¼ö(pallocµî)¿Í °°°Ô µ¿ÀÛÇÕ´Ï´Ù.