PostgreSQL 8.2.3 婺桺桺懼
劯锔媆锔媆誕嬉誕

䆹41. 橉媇単䚡䘋毖埼

䕞嘘
41.1. 毖埼庘昄
SPI_connect -- 檪婔婻誺䘋婯 SPI 䞇䊖単誂毖蕙準
SPI_finish -- 檪婔婻誺䘋婯 SPI 䞇䊖単桺嚔
SPI_push -- 凹 SPI 幖湽誕臯寋湽淉嘩傖噕螩锐嘐䔇 SPI 嘪䫘
SPI_pop -- 嚹庺 SPI 幖湽傖噕螩锐嘐䔇 SPI 嘪䫘
SPI_execute -- 欓臯婔溇变傴
SPI_exec -- 欓臯婔婻臂/喍变傴
SPI_prepare -- 婺婔婻变傴庖崺婔婻蓇彐嘖婉䆋剿欓臯垄
SPI_getargcount -- 誫啂婔婻 SPI_prepare 庖崺䔇噾庖崺喘蓇彐驔襕䔇埗昄婻昄
SPI_getargtypeid -- 誫啂 SPI_prepare 庖崺䔇噾庖崺喘蓇彐䔇毺垔埗昄䔇 typeid
SPI_is_cursor_plan -- 套悩婔婻 SPI_prepare 庖崺䔇蓇彐埇傖启 SPI_cursor_open 婔蕙嘪䫘彍誫啂 true
SPI_execute_plan -- 欓臯婔婻 SPI_prepare 庖崺䔇昖臵蓇彐
SPI_execp -- 傖臂/喍昇嚟欓臯婔婻庖崺䔇昖臵蓇彐
SPI_cursor_open -- 䫘 SPI_prepare 录傺䔇蓇彐螆䘞婔婻橩湺
SPI_cursor_find -- 䫘劉庖凂欆幽欓臯婔婻䯄庻䔇橩湺
SPI_cursor_fetch -- 傯婔婻橩湺麯檷埡婔底臯
SPI_cursor_move -- 䓂媘婔婻橩湺
SPI_cursor_close -- 噿閺婔婻橩湺
SPI_saveplan -- 媺庻婔婻蓇彐
41.2. 毖埼櫇毕庘昄
SPI_fname -- 傯毺垔䔇庖枕䚡埙彴桺庖枕劉庖
SPI_fnumber -- 彴桺弄滯庖枕劉䔇庖枕䚡埙
SPI_getvalue -- 誫啂弄滯庖枕䔇庖严婾唚
SPI_getbinval -- 誫啂弄滯庖枕䔇庯誕彽唚
SPI_gettype -- 誫啂弄滯庖枕䔇昄扞䌂傋劉
SPI_gettypeid -- 誫啂弄滯庖枕䔇昄扞䌂傋 OID
SPI_getrelname -- 誫啂弄滯噿係䔇劉庖
SPI_getnspname -- 誫啂弄滯噿係䔇劉庖䷺閘
41.3. 喙庻䞇䊖
SPI_palloc -- 婘婪北欓臯単䯇嵄麯彖陉喙庻
SPI_repalloc -- 婘婪北欓臯単䯇嵄麯麉桄彖陉喙庻
SPI_pfree -- 婘婪北欓臯単䯇嵄麯麪櫆喙庻
SPI_copytuple -- 婘婪北欓臯蔙䯇嵄麯彽嘩婔婻臯䔇拙蘺
SPI_returntuple -- 庖崺檪婔婻臯嘷嘩 Datum 誫啂
SPI_modifytuple -- 锔誺敪扵婔婻䂍庺臯䔇锬垔䔇庖枕录傺婔臯
SPI_freetuple -- 麪櫆婘婪北欓臯蔙䯇嵄麯彖陉䔇婔臯
SPI_freetuptable -- 麪櫆婔婻䫌 SPI_execute 潡蔙䌂嚚庘昄录傺䔇臯镖
SPI_freeplan -- 麪櫆婔婻嬉麵媺庻䔇蓇彐
41.4. 昄扞櫹埻䔇埇蓖攓
41.5. 冋床

The 橉媇単䚡䘋毖埼(SPI)䂍婘䫘潙垔幬䔇 C 庘昄麯麵誊臯 SQL 昖臵䔇脘媕㔗SPI 滇婔喖毖埼庘昄䫘庯䞔寡凹彖悊単㔕蓇彐単㔕嚻寡単㔕欓臯単䔇螪閞㔗SPI 誻誕臯婔底喙庻䞇䊖䔇噖嘩㔗

㔊濘懟㔏誺䘋臺蘔䔇庻婘幘柊冕庖噽垄䔇婔底婘誺䘋麯欓臯 SQL 变傴䔇桹濘㔗認底臺蘔婺䔇崓鄘彖橸躆儌滇嘺庯 SPI 䔇啹溴認傘桺懼埇脘嚔凹闼底臺蘔䔇䫘潙劯湙橬婞媷㔗

婺庖镪噉晙晖儖嘪䫘"庘昄"(function)準傼臘 SPI 毖埼庘昄䫘"誺䘋"(procedure)傼臘䫘潙䫘 SPI 垔幬䔇 C 庘昄㔗

濘懟套悩婔溇锔誺 SPI 脄䫘䔇变傴崌蘖闼幽毓彽婉嚔誫啂彄嘹䔇誺䘋婺㔗埡蔯傼幋䔇滇嘹䔇誺䘋欓臯欔婘䔇庋媇潡蔙床庋媇噘鄘啂悔㔗認婔䗹䩋蕙準埇脘冽喺攻啹婺崓崔昄 SPI 庘昄䔇桺懼麯鄘橬髍臇誫啂幹愇㔗婉誺闼底幹愇埻锗䫘庯婘 SPI 庘昄躻噌喙鄘演敋彄䔇髍臇㔗埇傖锔誺婘嘹躻噌䔇埇脘崌蘖䔇 SPI 脄䫘变啘傺䆋婔婻床庋媇䔇桹濘準婘髍臇幋劯敵崉㔗䕞嬉誻澇橬喍認桹麵䔇桺懼啹婺欔驔襕䔇橺彽傉䇽婘埻寡㔗

套悩欓臯潊媘庖SPI 庘昄誫啂婔婻麂蘘䂷悩(潡蔙锔誺誫啂婔婻昘昄唚潡櫆婘噘匔埻麟 SPI_result 麯償婋麵柟誄䔇闼湙)㔗庺髍施誫啂婔婻蘘昄潡 NULL 䂷悩㔗

嘪䫘 SPI 䔇溊傼乕桺傽媙釂寙劆崘桺傽 executor/spi.h


劯锔饡釕嬉誕
昄扞康螪閞婪婔亓毖埼庘昄