pg_procpg_procカタログは関数(またはプロシージャ)に関する情報を格納します。ユーザ定義関数を参照してください。このテーブルには、普通の関数のみならず集約関数も含まれます。proisaggが真ならpg_aggregateに一致する行があるはずです。行識別子(隠し属性です。推定実行コスト(cpu_operator_cost単位です)。proretsetの場合は、返される行毎のコストになります。可変配列パラメータの要素のデータ型。関数が可変パラメータを持っていない場合はゼロになります。この関数呼び出しは他の関数により簡略化できます。関数はウィンドウ関数です。この関数には副作用がありません。引数に関する情報が戻り値以外から伝わることがありません。引数の値に依存するエラーを発生する可能性がある関数はすべてリークプルーフ関数ではありません。関数は呼び出し引数がNULLの場合にはNULLを返します。その場合、関数は実際にはまったく呼び出されません。「厳密」ではない関数はNULL値入力を取り扱えるようにしなければいけません。provolatileは、関数の結果が入力引数のみで決定されるか、または外部要素に影響されるかを示します。iは「immutable(不変)」関数を表し、同じ入力に対し常に同じ結果をもたらします。sは「stable(安定)」関数を表し、(固定入力に対する)結果はスキャン内で変わりません。vは「volatile(不安定)」関数を表し、どのような場合にも結果は異なる可能性があります。(また、副作用を持つ関数にvを使用することで、その関数に対する呼び出しが最適化で消されないようにできます。proparallelは関数が並列モードにて安全に実行できるかを示します。sは、制限なしに並列モードにて実行することが安全である関数を表します。rは、並列モードにて実行可能な関数を表しますが、実行は並列グループリーダに制限されます。並列ワーカプロセスはこれらの関数を呼び出すことができません。uは、並列モードにて安全ではない関数を表します。このような関数が存在すると、直列的な実行プランが強制されます。関数の引数のデータ型を格納した配列。これは入力引数(INOUTとVARIADICも含みます)のみを含んでいて、関数の呼び出しシグネチャを表現します。関数の引数のデータ型を格納した配列。これは(OUTとINOUT引数を含んだ)全ての引数を含みます。すべての引数がINであった場合は、この列はNULLになります。歴史的な理由からproargtypesは0から番号が振られていますが、添字は1から始まっていることに注意してください。関数の引数のモードを格納した配列。以下のようにエンコードされています。TABLE引数に対してはt。すべての引数がIN引数であった場合は、この列はNULLです。添字はproargtypesではなくproallargtypesの位置に対応していることに注意してください。関数の引数名を格納する配列。名前のない引数は、配列内では空文字列で設定されます。すべての引数に名前がない場合は、この列はNULLです。添字はproargtypesではなくproallargtypesの位置に対応していることに注意してください。デフォルト値のための(nodeToString()表現の)演算式ツリー。proargtypesの位置ということです)。引数にデフォルト値がない場合は、この列はNULLになります。関数の起動方法を関数ハンドラに伝えます。実装言語や呼び出し規約に依存して、使用する言語用の関数の実際のソースコード、リンクシンボル、ファイル名などになります。関数の起動方法についての追加情報。同じように解釈は言語に依存します。GRANTとREVOKEを参照してください。コンパイル言語で作成された、組み込みおよび動的にロードされる関数では、prosrcは関数のC言語名(リンクシンボル)を持ちます。他の種類の言語はすべて、prosrcは関数のソーステキストを持ちます。probinは動的にロードされるC関数に対してその関数を保有する共有ライブラリファイルの名前を与える以外には使用されていません。