無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

47.36. pg_proc

pg_proc カタログは関数(またはプロシージャ)に関する情報を格納します。 CREATE FUNCTION 項35.3 を参照してください。

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

表 47-36. pg_proc の列

名前 参照先 説明
oid oid   行識別子(隠し属性です。明示的に選択しなければなりません)
proname name   関数名
pronamespace oid pg_namespace .oid この関数を含む名前空間のOID
proowner oid pg_authid .oid 関数の所有者
prolang oid pg_language .oid この関数の実装言語または呼び出しインタフェース
procost float4   推定実行コスト( cpu_operator_cost 単位です)。 proretset の場合は、返される行毎のコストになります。
prorows float4   結果の推定行数( proretset でなければゼロになります)
provariadic oid pg_type .oid 可変配列パラメータの要素のデータ型。関数が可変パラメータを持っていない場合はゼロになります。
protransform regproc pg_proc .oid この関数呼び出しは他の関数により簡略化できます。 ( 項35.9.11 を参照してください)
proisagg bool   関数は集約関数です。
proiswindow bool   関数はウィンドウ関数です。
prosecdef bool   セキュリティ定義の関数(すなわち "setuid" 関数)
proleakproof bool   この関数には副作用がありません。引数に関する情報が戻り値以外から伝わることがありません。 引数の値に依存するエラーを発生する可能性がある関数はすべてリークプルーフ関数ではありません。
proisstrict bool   関数は呼び出し引数がNULLの場合にはNULLを返します。 その場合、関数は実際にはまったく呼び出されません。 "厳密" ではない関数はNULL値入力を取り扱えるようにしなければいけません。
proretset bool   集合(すなわち指定されたデータ型の複数の値)を返す関数
provolatile char   provolatile は、関数の結果が入力引数のみで決定されるか、または外部要素に影響されるかを示します。 "immutable" 関数を表す i は同じ入力に対し常に同じ結果をもたらします。 "stable" 関数を表す s は(固定入力に対する)結果はスキャン内で変わりません。 "volatile" 関数を表す v は常に異なる結果を出す可能性があります (また、副作用を持つ関数に v を使用することで、その関数に対する呼び出しが最適化されないようにすることができます)。
pronargs int2   入力の引数の数
pronargdefaults int2   デフォルト値を持つ引数の数
prorettype oid pg_type .oid 戻り値のデータ型
proargtypes oidvector pg_type .oid 関数の引数のデータ型を格納した配列。 これは入力引数( INOUT VARIADIC も含みます)のみを含んでいて、関数の呼び出しシグネチャを表現します。
proallargtypes oid[] pg_type .oid 関数の引数のデータ型を格納した配列。 これは( OUT INOUT 引数を含んだ)全ての引数を含みます。 しかし、すべての引数が IN であった場合は、この列はNULLになります。 歴史的な理由から proargtypes は0から番号が振られていますが、 添字は1から始まっていることに注意してください。
proargmodes char[]   関数の引数のモードを格納した配列。 以下のように符号化されています。 IN 引数に対しては i OUT 引数に対しては o INOUT 引数に対しては b VARIADIC 引数に対しては v TABLE 引数に対しては t 。 もしすべての引数が IN 引数であった場合は、この列はNULLとなります。 添字は proargtypes ではなく proallargtypes の位置に対応していることに注意してください。
proargnames text[]   関数の引数名を格納する配列。 名前のない引数は、配列内では空文字列で設定されます。 もしすべての引数に名前がない場合は、この列はNULLとなります。 添字は proargtypes ではなく proallargtypes の位置に対応していることに注意してください。
proargdefaults pg_node_tree   デフォルト値のための( nodeToString() 表現の)演算式ツリー。 これは pronargdefaults の要素のリストで、最後の N 個の 入力 引数と対応しています (つまり最後の N proargtypes の位置ということです)。 もし引数にデフォルト値がない場合は、この列はNULLになります。
prosrc text   関数の起動方法を関数ハンドラに伝えます。 実装言語や呼び出し規約に依存して、使用する言語用の関数の実際のソースコード、リンクシンボル、ファイル名などになります。
probin text   関数の起動方法についての追加情報。 同じように解釈は言語に依存します。
proconfig text[]   実行時の設定変数に対する関数のローカル設定
proacl aclitem[]   アクセス権限。 GRANT REVOKE を参照してください。

コンパイル言語で作成された、組込みおよび動的にロードされる関数では、 prosrc は関数のC言語名(リンクシンボル)を持ちます。 他の種類の言語はすべて、 prosrc は関数のソーステキストを持ちます。 probin は動的にロードされるC関数に対してその関数を保有する共有ライブラリファイルの名前を与える以外には使用されていません。


powered by SEO.CUG.NET