?
? ????? PHP ??? ???? ??? ?? ??
pg_proc表存儲(chǔ)關(guān)于函數(shù)(或過(guò)程)的信息。參閱CREATE FUNCTION 和Section 35.3獲取更多信息。
該表包含聚合集函數(shù)和普通函數(shù)的數(shù)據(jù)。如果 proisagg為真, 那么在pg_aggregate里應(yīng)該有一個(gè)匹配行。
Table 45-32. pg_proc Columns
名稱(chēng) | 類(lèi)型 | 引用 | 描述 |
---|---|---|---|
proname | name | ? | 函數(shù)名 |
pronamespace | oid | pg_namespace.oid | 包含該函數(shù)名空間的OID |
proowner | oid | pg_authid.oid | 函數(shù)的所有者 |
prolang | oid | pg_language.oid | 這個(gè)函數(shù)的實(shí)現(xiàn)語(yǔ)言或調(diào)用接口 |
procost | float4 | ? | 估計(jì)執(zhí)行成本(單位cpu_operator_cost);如果 proretset 這是返回每行成本 |
prorows | float4 | ? | 估計(jì)的結(jié)果行數(shù)(如果不 proretset,則為零) |
provariadic | oid | pg_type.oid | 可變數(shù)組參數(shù)元素的數(shù)據(jù)類(lèi)型,或 如果函數(shù)沒(méi)有一個(gè)可變參數(shù),則為零 |
proisagg | bool | ? | 函數(shù)是一個(gè)聚合函數(shù)? |
proiswindow | bool | ? | 函數(shù)是一個(gè)窗口函數(shù)? |
prosecdef | bool | ? | 函數(shù)是一個(gè)安全定義器?(也就是一個(gè)"setuid"函數(shù)) |
proisstrict | bool | ? | 如果任何調(diào)用參數(shù)是空,那么函數(shù)返回空。這時(shí)函數(shù)實(shí)際上連調(diào)用都不調(diào)用。 不是嚴(yán)格的函數(shù)必須準(zhǔn)備處理輸入的空情況。 |
proretset | bool | ? | 函數(shù)返回一個(gè)集合(也就是說(shuō),指定數(shù)據(jù)類(lèi)型的多個(gè)數(shù)值) |
provolatile | char | ? | provolatile告訴該函數(shù)的結(jié)果是否只依賴(lài)于它的輸入?yún)?shù),或者還會(huì)由外部因素影響。 對(duì)于"不變"的函數(shù),它是i,這樣的函數(shù)對(duì)于相同的輸入總 是產(chǎn)生相同的結(jié)果。對(duì)于"穩(wěn)定"的函數(shù),它是 s,(對(duì)于固定輸入) 其結(jié)果在一次掃描里不變。對(duì)于"易變"函數(shù)它是v, 其結(jié)果可能在任何時(shí)候變化。v 也用于那些有副作用的函數(shù),因此調(diào)用它們無(wú)法得到優(yōu)化。 |
pronargs | int2 | ? | 輸入?yún)?shù)的數(shù)目 |
pronargdefaults | int2 | ? | 缺省的參數(shù)數(shù)目 |
prorettype | oid | pg_type.oid | 返回值的數(shù)據(jù)類(lèi)型 |
proargtypes | oidvector | pg_type.oid | 一個(gè)存放函數(shù)參數(shù)的數(shù)據(jù)類(lèi)型的數(shù)組。 數(shù)組里只包括輸入?yún)?shù)(包括INOUT和VARIADIC參數(shù)),因此代表該函數(shù)的調(diào)用簽名(接口)。 |
proallargtypes | oid[] | pg_type.oid | 一個(gè)包含函數(shù)參數(shù)的數(shù)據(jù)類(lèi)型的數(shù)組。數(shù)組里包括所有參數(shù)的 類(lèi)型(包括和OUT和INOUT參數(shù));不過(guò),如果所有參數(shù)都是IN參數(shù), 那么這個(gè)字段就會(huì)是空。請(qǐng)注意數(shù)組下標(biāo)是以1為起點(diǎn)的,而因?yàn)闅v史原因, proargtypes的下標(biāo)起點(diǎn)為0 。 |
proargmodes | char[] | ? | 一個(gè)保存函數(shù)參數(shù)模式的數(shù)組,編碼如下:i表示IN參數(shù), o表示OUT參數(shù),b表示INOUT參數(shù)。v表示VARIADIC參數(shù), t表示TABLE參數(shù),如果所有參數(shù)都是IN參數(shù), 那么這個(gè)字段為空。請(qǐng)注意,下標(biāo)對(duì)應(yīng)的是proallargtypes的位置,而不是proargtypes。 |
proargnames | text[] | ? | 一個(gè)保存函數(shù)參數(shù)名的數(shù)組。沒(méi)有名的參數(shù)在數(shù)組里設(shè)置為空字符串。 如果沒(méi)有一個(gè)參數(shù)有名,這個(gè)字段將是空。請(qǐng)注意,此數(shù)組的下標(biāo) 對(duì)應(yīng)proallargtypes而不是proargtypes。 |
proargdefaults | text | ? | 表達(dá)式樹(shù)(在nodeToString() 表示)
缺省值。這是一個(gè)列表
pronargdefaults元素,對(duì)應(yīng)到最后
N輸入參數(shù)(即最后
Nproargtypes位置)。
如果沒(méi)有任何參數(shù)有缺省值,這一字段為空。
|
prosrc | text | ? | 這個(gè)字段告訴函數(shù)處理器如何調(diào)用該函數(shù)。它實(shí)際上對(duì)于解釋語(yǔ)言來(lái)說(shuō) 就是函數(shù)的源程序,或者一個(gè)鏈接符號(hào),一個(gè)文件名,或者是任何其它的東西 ,具體取決于語(yǔ)言/調(diào)用習(xí)慣的實(shí)現(xiàn)。 |
probin | text | ? | 關(guān)于如何調(diào)用該函數(shù)的附加信息。同樣,其含義也是和語(yǔ)言相關(guān)的。 |
proconfig | text[] | ? | 運(yùn)行時(shí)配置變量的函數(shù)局部設(shè)置 |
proacl | aclitem[] | ? | 訪問(wèn)權(quán)限;參閱GRANT和REVOKE獲取細(xì)節(jié)。 |
對(duì)于內(nèi)置和動(dòng)態(tài)加載的編譯函數(shù),prosrc 包含C語(yǔ)言函數(shù)名(鏈接符號(hào))。 對(duì)于所有其它語(yǔ)言類(lèi)型,prosrc包含該函數(shù)的源文本。probin除了用于動(dòng)態(tài) 加載的C函數(shù)之外沒(méi)有其它用途,這個(gè)時(shí)候它給出包含該函數(shù)的共享庫(kù)的文件名。