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

47.10. pg_cast

pg_cast カタログにはデータ型変換パスが格納されます。 ここには、組み込みのパスとユーザ定義のパスが存在します。

pg_cast は、システムがどのように動作するかわかっているような、あらゆる型変換を表しているわけではないということに注意してください。 いくつかの一般的な規則から推測できないような型変換についてのみ表しています。 例えば、ドメインとその基本の型は明示的に pg_cast 内で表されていません。 他の重要な例外は "自動I/O変換キャスト" です。 これらのキャストは、 text 型やほかの文字列型から変換したりされたりするのにデータ型自身のI/O関数を用いていますが、これらのキャストは明示的に pg_cast 内において表されていません。

表 47-10. pg_cast の列

名前 参照先 説明
oid oid   行識別子(隠し属性です。明示的に選択しなければなりません)
castsource oid pg_type .oid 変換元データ型のOID
casttarget oid pg_type .oid 対象データ型のOID
castfunc oid pg_proc .oid このキャストを実行するために使用する関数のOID。 キャストメソッドが関数を必要としない場合はゼロが格納されます。
castcontext char   キャストがどの文脈で呼び出し可能かを示します。 e は明示のキャストとしてのみ起動されることを意味します ( CAST :: 構文を使用します)。 a は、対象となる列を明示的に特定するだけでなく暗黙的にも特定することを意味します。 i は他の場合と同様に演算式内で暗黙的であることを意味します。
castmethod char   どのようにキャストが実行されるかを示します。 f castfunc フィールド内で示される関数が使用されていることを意味します。 i は入出力関数が使用されていることを示します。 b は型がバイナリを強制しているため、変換が必要ないことを意味します。

pg_cast 内に挙げられているキャスト関数は、第1番目の引数の型として、キャスト元の型をいつも取らなければいけません。 また、キャスト関数は、結果の型としてキャスト先の型を返します。 キャスト関数は3つまで引数を持つことができます。 もし存在するなら、2番目の引数は integer 型でなくてはなりません。 この引数はキャスト先の型に関連付けられた型修飾子を受け取ります。 2番目の引数がない場合は、-1です。 3番目の引数は、もし存在する場合は、 boolean 型でなくてはなりません。 この引数は、もしキャストが明示的なキャストであれば true を受け取り、そうでない場合は false を受け取ります。

もし関連のある関数が複数の引数を持つ場合、キャストの元と先で型が同じである pg_cast 項目を作成することが妥当です。 このような項目は、 "length coercion functions" を表現します。 "length coercion functions" は型の値を特定の型の修飾子の値に適するように修正します。

pg_cast 項目が異なるキャスト元とキャスト先の型を持っていて、かつ関数が複数の引数を持つ時は、1つの型から別の型への変換し、かつ、1つの手順で長さの修正を適用することを意味します。 このような項目が利用できない時は、型修飾子を使用した型の修正は2つの手順が必要です。 1つはデータ型の間での変換で、2つ目は修飾子を適用することです。


powered by SEO.CUG.NET