3.16. pg_type

Table 3-16. pg_type カラム

名前参照先説明
typnamename デ−タ型名
typownerint4pg_shadow.usesysid型を作成した、型所有者
typlenint2 型のストレッジ表現形式の長さです。可変長の場合は-1です。
typprtlenint2 使用されていません。
typbyvalbool  typbyvalは、内部関数がこの型の値を値渡しで渡すか,参照渡しで渡すかを決定します。 charshortintと同等のもののみ 値で引き渡すことが可能です。つまり、型が1、2や4バイトでなければ Postgresではその値を引き渡すことができないので、 typbyvalは偽にする必要があります。 可変長型は必ず参照渡しになります。 typbyvalは長さ的に引き渡し可能でも 偽になりうるということにご注意下さい。現在float4などが これに該当します。
typtypechar  typtypeは、bは 基本型、cはカタログ型となります。(すなわち テ−ブル。) もしtyptypecであれば、typrelidpg_classの内容の型のOIDとなります。
typisdefinedbool ???
typdelimchar  配列入力を解析する際に二つの値を分ける文字です。
typrelidoidpg_class.oid もしこれがカタログ型であるならば、(typtypeを参照)、 このフィ−ルドは該当するテ−ブルのpg_class内容を 指します。テ−ブルは理論的にはデ−タ型の複合として使用できますが、 充分には機能しなくなります。
typelemoidpg_type.oid もしtypelemが0でない場合、それは pg_typeの別の列を意味します。 その後、現在の型は配列のように、typelem型の 値を譲渡し、要素を持つことが可能となります。 ゼロではないtypelemはこの型が本当の 配列型になることを保証しません。また、oidvector型のように、 通常の固定長の型も扱うことができます。可変長の型はこのような擬似配列に することはできません。それ故、本当の配列であるかどうかは typelem != 0 と typlen < 0で見分けることができます。
typinputregproc 入力関数
typoutputregproc 出力関数
typreceiveregproc 使用されていません。
typsendregproc 使用されていません。
typalignchar 

typalignはこの型の値を格納する際に必要な 調整です。ディスクに書き込む時やほとんどのPostgres内の値を表示させる ために使用されます。ディスクに完全な列を格納する時など、いくつかの 値が連続して格納される際、境界を特定するためにこの型のデ−タの前に パッドが挿入されます。調整の照会はシ−ケンスの一番最初にあります。

使用可能な値は:

  • 'c' = CHAR alignment すなわち、調整は必要ありません。

  • 's' = SHORT alignment (多くのマシンでは2 バイトになります)。

  • 'i' = INT alignment (多くのマシンでは4 バイトになります)。

  • 'd' = DOUBLE alignment (多くのマシンでは8 バイトになりますが、 決してすべてがそうであるとは限りません)。

Note: システムテ−ブルで使用されている型にはおいて、 pg_typeで定義されているサイズや調整は、 コンパイラがテ−ブル行を示すためにフィ−ルドを 構造に配置する方法と一致していることが必要となります。

typstoragechar 

typstorageは可変長型 (typlen = -1のもの)に対して 型がTOASTに対応しているかとこの型の属性のデフォルト手順が 何であるべきかを伝えます。 使用可能な値は

  • 'p': 値は必ず簡潔な状態で格納されなければなりません。

  • 'e': 値は"従属的" リレ−ションに格納することができます。 (リレ−ションに関することは pg_classreltoastrelidをご覧下さい)。

  • 'm': 値は圧縮されたinlineに格納することができます。

  • 'x': 値は圧縮された、inline もしくは"従属"に 格納することができます。

'm'のフィ−ルドは補助記憶に移すことができますが、再分区分する際の 最後でなければなりません。('e' と 'x' フィ−ルドが先に移動されなければ なりません)。

typdefaulttext ???