3.24. pg_proc

このカタログは関数(またはプロシージャ)に関する情報を格納しています。CREATE FUNCTION コマンドの説明とプログラマガイドにはいくつかのフィールドについてより詳しい情報が書かれています。

このテーブルには、プレーン関数だけでなく集約関数も含まれます。 proisagg が真なら、pg_aggregate に一致する行があるはずです。

Table 3-24. pg_proc の列

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

現在 prosrc は取りこまれたものと動的にロードされるもの両方に対し、コンパイルされた関数に対する関数の C 言語による名称(リンクシンボル)を持っています。すべての他の言語型に対して、prosrc は関数のソーステキストを持ちます。

現在 probin は動的にロードされた C 関数に対してその関数を保有する共有ライブラリファイルの名前を与える以外には使用されていません。