43.24. pg_proc

pg_proc カタログは関数(またはプロシージャ)に関する情報を格納します。CREATE FUNCTION コマンドの説明と 項33.3 にはいくつかの列に関するより詳しい情報があります。

このテーブルには、明瞭な関数のみならず集約関数も含まれます。proisagg が真なら pg_aggregate に一致する行があるはずです。

表 43-24. pg_proc

名前参照先説明
pronamename 関数名
pronamespaceoidpg_namespace.oid この関数を含む名前空間の OID
proownerint4pg_shadow.usesysid関数の所有者
prolangoidpg_langauge.oidこの関数の実装言語または呼び出しインタフェース
proisaggbool 集約関数である関数
prosecdefbool  セキュリティ定義の関数(例:"setuid" 関数)
proisstrictbool  関数は呼び出し引数が NULL 値 の場合には NULL 値を返します。その場合、関数は実際にはまったく呼び出されません。"厳密"ではない関数は NULL 値入力を取り扱えるようにしなければいけません。
proretsetbool  集合を返す関数(すなわち指定されたデータ型の複数の値)
provolatilechar  provolatile は、関数の結果が入力引数のみで決定されるか、または外部要素に影響されるかを示します。"immutable" 関数の i は同じ入力に対し常に同じ結果をもららします。"stable" 関数の s はスキャン内で(固定入力の)結果に変更を及ぼしません。"volatile" 関数の v は常に異なる結果を出す可能性があります。(また、副作用を持つ関数に v を使用することで、その関数に対する呼び出しが最適化されないようにできます。)
pronargsint2 引数の数
prorettypeoidpg_type.oid戻り値のデータ型
proargtypesoidvectorpg_type.oid関数の引数のデータ型を所有した配列
prosrctext  関数にどうやって起動かけるかを関数ハンドラに伝えます。翻訳された言語やリンクシンボル、ファイル名など、実装された言語・呼び出し仕様の実際のソースコードである可能性が多いにあります。
probinbytea  関数を起動する方法に付いての追加情報。同じように解釈は言語に依存します。
proaclaclitem[] アクセス許可権限

prosrc は静的に組み込まれたものと動的に取り込まれたもの双方に対し、コンパイルされた関数に対する関数の C 言語による名称(リンクシンボル)を持っています。すべての他の言語型に対して prosrc は関数のソーステキストを持ちます。probin は動的に取り込まれた C 関数に対してその関数を保有する共有ライブラリファイルの名前を与える以外には使用されていません。