oid oid
行識別子
|
typname name
データ型名
|
typnamespace oid
(参照先 pg_namespace.oid)
この型を含む名前空間のOID
|
typowner oid
(参照先 pg_authid.oid)
型の所有者
|
typlen int2
固定長型では、typlenは型の内部表現内でのバイト数です。
しかし、可変長型ではtyplenは負です。
-1は「varlena」型(最初の4バイトにデータ長を含むもの)を意味し、-2はヌル終端のC言語の文字列を示します。
|
typbyval bool
typbyvalは内部関数がこの型の値を値渡しか、参照渡しかを決定します。
typlenが1、2、4バイト長(もしくはDatumが8バイトのマシン上では8バイト長)以外であれば、typbyvalをfalseにする必要があります。
可変長型は必ず参照渡しになります。
typbyvalは長さが値渡し可能でもfalseになり得ることに注意してください。
|
typtype char
typtypeでは、
b = 基本型、
c = 複合型(例えばテーブルの行の型)、
d = 派生型(ドメインなど)、
e = 列挙型、
p = 疑似型、
r = 範囲型、
m = 多重範囲型です。
typrelidおよびtypbasetypeも参照してください。
|
typcategory char
typcategoryは、パーサがどの暗黙のキャストが「選択」されるべきか決定するのに使用されるデータ型の任意の分類です。
表 53.65を参照してください。
|
typispreferred bool
型がtypcategory内で選択されたキャスト対象である場合はtrue
|
typisdefined bool
型が定義されている場合はtrue。
ここが未定義型に対する予備の場所である場合はfalse。
typisdefinedがfalseの場合、型名と名前空間とOID以外は信頼すべきでありません。
|
typdelim char
配列入力の構文解析をする際にこの型の2つの値を分離する文字。
区切り文字は配列データ型ではなく配列要素データ型に関連付けられることに注意してください。
|
typrelid oid
(参照先 pg_class.oid)
もしこれが複合型(typtypeを参照)であれば、この列は関連するテーブルを定義するpg_class項目を指します。
(独立の複合型の場合、pg_class項目は実際にはテーブルを表しませんが、いずれにしても型のpg_attribute項目をリンクするために必要です。)
複合型でない場合はゼロです。
|
typsubscript regproc
(参照先 pg_proc.oid)
添字ハンドラ関数のOID、あるいはこの型が添え字付けをサポートしていなければゼロ。
「本当の」配列型では、typsubscript = array_subscript_handlerとなります。
しかし、他の型では特別な添え字付けの振る舞いを実装するハンドラ関数を持つかもしれません。
|
typelem oid
(参照先 pg_type.oid)
typelemがゼロでない場合、これは添字付けによって生成された型を定義するpg_typeの別の列を特定します。
typsubscriptがゼロなら、これはゼロとなるはずです。
しかし、添字付けの結果型を決定するためにハンドラがtypelemを必要としてなければ、typsubscriptがゼロでなくても、ゼロとなることがあります。
typelem依存性は、この型の要素型を物理的に含むことを暗示すると考えられることに注意してください。
ですからこの要素型に対するDDL変更は、この型に存在に制限されるかもしれません。
|
typarray oid
(参照先 pg_type.oid)
typarrayがゼロでない場合、typarrayはpg_type内のもうひとつの行を特定します。
もうひとつの行は、この型を要素として持っている「本当」の配列型です。
|
typinput regproc
(参照先 pg_proc.oid)
入力変換関数(テキスト形式)
|
typoutput regproc
(参照先 pg_proc.oid)
出力変換関数(テキスト形式)
|
typreceive regproc
(参照先 pg_proc.oid)
入力変換関数(バイナリ形式)、なければゼロ
|
typsend regproc
(参照先 pg_proc.oid)
出力変換関数(バイナリ形式)、なければゼロ
|
typmodin regproc
(参照先 pg_proc.oid)
型修飾子の入力関数。型が修飾子をサポートしていない場合はゼロ
|
typmodout regproc
(参照先 pg_proc.oid)
型修飾子の出力関数。標準書式を使用する場合はゼロ
|
typanalyze regproc
(参照先 pg_proc.oid)
独自のANALYZE関数。標準関数を使用する場合はゼロ
|
typalign char
typalignはこの型の値を格納する際に必要な整列です。
ディスク上での格納だけでなく、PostgreSQL内部の値の表現にも適用されます。
ディスク上の完全な行の表現のように、複数の値が隣接して格納される際には、指定された境界で始まるように、この型のデータの前にパディングが挿入されます。
アライメントの参照先は、連続しているデータ中の先頭のデータの開始位置です。
使用可能な値は以下の通りです。
c = char整列(すなわち、整列は必要ありません)。
s = short整列(多くのマシンでは2バイトになります)。
i = int整列(多くのマシンでは4バイトになります)。
d = double整列(多くのマシンでは8バイトになりますが、必ずしもすべてがそうであるとは限りません)。
|
typstorage char
typstorageは、varlena型(typlen = -1であるもの)において、その型がトーストされる予定であるか、この型においてアトリビュートに対するデフォルトの戦略が何であるかを示します。
可能な値は以下です。
p (plain):値は常にplainで格納されなければなりません(非varlena型は常にこの値を使います)。
e (external):値は「従属的」リレーションに格納できます(リレーションがあるとき。リレーションに関してはpg_class.reltoastrelidを参照してください)。
m (main):値は圧縮してインラインで格納できます。
x (extended):値は圧縮することもできますし、圧縮した上で更に従属的リレーションに移動することもできます。
トースト可能な型に対しては x が通常の選択です。
m 値も、どうしても必要なら従属的格納に移動できることに注意してください(e と x 値は、まず最初に移動します)。
|
typnotnull bool
typnotnullは型に対し非NULL制約を表します。
ドメインでのみ使用されます。
|
typbasetype oid
(参照先 pg_type.oid)
もしこれがドメイン(typtypeを参照)であれば、typbasetypeはこれが基づいている型を指定します。
ドメインでない場合はゼロです。
|
typtypmod int4
ドメインはtyptypmodを使用して、基本型に適用されるtypmodを記録します
(基本型がtypmodを使用しない場合は-1)。
この型がドメインでない場合は-1です。
|
typndims int4
typndimsは配列であるドメインの配列の次元数です
(つまり、typbasetypeは配列型です)。
配列型のドメインでない場合はゼロです。
|
typcollation oid
(参照先 pg_collation.oid)
typcollationは型の照合順序を指定します。
型が照合順序をサポートしない場合、ゼロになります。
照合順序をサポートする基本型はここでゼロ以外の値を持ちます。典型的にはDEFAULT_COLLATION_OIDです。
照合順序の設定可能な型全体のドメインは、そのドメインで照合順序が指定されていれば、基本型とは異なる照合順序OIDを持つことができます。
|
typdefaultbin pg_node_tree
typdefaultbinがNULLでない場合、これは型のデフォルト式のnodeToString()表現です。
ドメインでのみ使用されます。
|
typdefault text
関連するデフォルト値を持たない型であればtypdefaultはNULLです。
typdefaultbinがNULLでない場合、typdefaultは、typdefaultbinによって表される人間が見てわかる形式のデフォルト式を含む必要があります。
typdefaultbinがNULLでtypdefaultがNULLでない場合、typdefaultは型のデフォルト値の外部表現です。
これは、定数を生成するために型の入力変換処理に渡されることがあります。
|
typacl aclitem[]
アクセス権限。
詳細は5.7を参照してください
|