このカタログは関数(またはプロシージャ)に関する情報を格納しています。CREATE FUNCTION コマンドの説明とプログラマガイドにはいくつかのフィールドについてより詳しい情報が書かれています。
このテーブルには、プレーン関数だけでなく集約関数も含まれます。 proisagg が真なら、pg_aggregate に一致する行があるはずです。
Table 3-24. pg_proc の列
名前 | 型 | 参照先 | 説明 |
---|---|---|---|
proname | name | 関数名 | |
pronamespace | oid | pg_namespace.oid | この関数を含む名前空間の OID |
proowner | int4 | pg_shadow.usesysid | 関数の所有者(作成者) |
prolang | oid | pg_language.oid | この関数の実装言語または呼び出しインターフェイス |
proisagg | bool | 集約関数である関数 | |
prosecdef | bool | セキュリティを定義する関数(例、"setuid" 関数) | |
proisstrict | bool | 呼び出し引数が NULL 値 の場合には NULL 値を返す関数。その場合、その関数は実際にはまったく呼び出されません。"厳格"ではない関数は NULL 値入力を取り扱えるようにしなければいけません。 | |
proretset | bool | 集合を返す関数(すなわち指定されたデータ型の複数の値) | |
provolatile | char | provolatile は、関数の結果が入力引数のみで決定されるか、または外部要素に影響されるかを示します。 同じ入力に対し常に同じ結果を出すのは i で、これは "immutable" 関数を指します。 スキャン中に(固定された入力の)結果が変化しないのは s で、これは "stable" 関数を指します。 常に異なる結果を出す可能性があるのは v で、これは "volatile" 関数を指します。 (また、副作用のある関数に v を使用することで、その関数に対する呼び出しが最適化されないようにできます。) | |
pronargs | int2 | 引数の数 | |
prorettype | oid | pg_type.oid | 戻り値のデータ型 |
proargtypes | oidvector | pg_type.oid | ベクトルと関数の引数のデータ型 |
prosrc | text | これは関数に起動をかける方法を関数ハンドラに伝えます。実装された言語や呼び出し仕様によって解釈された言語やリンクシンボル、ファイル名などの関数の実際のソースコードかもしれません。 | |
probin | bytea | 関数を起動する方法に付いての追加情報。同じように解釈は言語に依存します。 | |
proacl | aclitem[] | アクセス許可権限 |
現在 prosrc は取りこまれたものと動的にロードされるもの両方に対し、コンパイルされた関数に対する関数の C 言語による名称(リンクシンボル)を持っています。すべての他の言語型に対して、prosrc は関数のソーステキストを持ちます。
現在 probin は動的にロードされた C 関数に対してその関数を保有する共有ライブラリファイルの名前を与える以外には使用されていません。