pg_proc #
pg_procカタログは関数、プロシージャ、集約関数あるいはWINDOW関数(これらをまとめてルーチンとも言います)に関する情報を格納します。
CREATE FUNCTION、CREATE PROCEDUREと38.3を参照してください。
  
prokindがそのエントリが集約関数であることを示しているなら、pg_aggregateに一致する行があるはずです。
  
表53.39 pg_procの列
| 列 型 説明 | 
|---|
| 
        行識別子 | 
| 
        関数名 | 
| 
        この関数を含む名前空間のOID | 
| 
        関数の所有者 | 
| 
        この関数の実装言語または呼び出しインタフェース | 
| 
        
推定実行コスト(cpu_operator_cost単位です)。
 | 
| 
        
結果の推定行数( | 
| 
        可変配列パラメータの要素のデータ型。関数が可変パラメータを持っていない場合はゼロになります | 
| 
        この関数に対する任意のプランナサポート関数。なければゼロ。 (38.11参照) | 
| 
        
 | 
| 
        セキュリティ定義の関数(すなわち「setuid」関数) | 
| 
        この関数には副作用がありません。引数に関する情報が戻り値以外から伝わることがありません。 引数の値に依存するエラーを発生する可能性がある関数はすべてリークプルーフ関数ではありません。 | 
| 
        関数は呼び出し引数がNULLの場合にはNULLを返します。 その場合、関数は実際にはまったく呼び出されません。 「厳密」ではない関数はNULL値入力を取り扱えるようにしなければいけません。 | 
| 
        集合(すなわち指定されたデータ型の複数の値)を返す関数 | 
| 
        
 | 
| 
        
 | 
| 
        入力の引数の数 | 
| 
        デフォルト値を持つ引数の数 | 
| 
        戻り値のデータ型 | 
| 
        
関数の引数のデータ型を格納した配列。
これは入力引数( | 
| 
        
関数の引数のデータ型を格納した配列。
これは( | 
| 
        
関数の引数のモードを格納した配列。
以下のようにエンコードされています。
 | 
| 
        
関数の引数名を格納する配列。
名前のない引数は、配列内では空文字列で設定されます。
もしすべての引数に名前がない場合は、この列はNULLです。
添字は | 
| 
        
デフォルト値のための( | 
| 
        
(関数の | 
| 
        関数の起動方法を関数ハンドラに伝えます。 実装言語や呼び出し規約に依存して、使用する言語用の関数の実際のソースコード、リンクシンボル、ファイル名などになります。 | 
| 
        関数の起動方法についての追加情報。 同じように解釈は言語に依存します。 | 
| 
        前もってパースしたSQL関数の本体。 文字列リテラルではなく、SQL標準表記で本体が与えられた時にSQL言語関数に使用されます。 その他の場合はNULLです。 | 
| 
        実行時の設定変数に対する関数のローカル設定 | 
| 
        アクセス権限。 詳細は5.7を参照してください | 
コンパイル言語で作成された、組み込みおよび動的にロードされる関数では、prosrcは関数のC言語名(リンクシンボル)を持ちます。
SQL言語関数に対しては、関数が文字列リテラルで与えられた場合にprosrcは関数のソーステキストを持ちます。
しかし関数本体がSQL標準形式で指定された場合には、prosrcは使われず(典型的には空文字列となります)、prosqlbodyに前もってパースされた定義が格納されます。
それ以外の現在知られているすべての言語形式では、prosrcには関数のソーステキストが含まれます。
probinは動的にロードされるC関数に対してはその関数を保有する共有ライブラリファイルの名前を与えますが、それ以外ではNULLです。