pg_typepg_typeカタログはデータ型の情報を保存します。DOMAINで作成されます。複合型がテーブルの行構成を表すためデータベースの個々のテーブルに対して自動的に作成されます。ASで作成することもできます。固定長型では、typlenは型の内部表現内でのバイト数です。可変長型ではtyplenは負となります。-1は"varlena"型(最初の4バイトにデータ長を含むもの)を意味し、-2はヌル終端のC言語の文字列を示します。typbyvalは内部関数がこの型の値を値渡しか、参照渡しかを決定します。typlenが1、2、4バイト長(もしくはDatumが8バイトのマシン上では8バイト長)以外であれば、typbyvalを偽にする必要があります。可変長型は必ず参照渡しになります。typbyvalは長さが値渡し可能でも偽になり得ることに注意してください。typtypeでは、bは基本型、cは複合型(例えばテーブルの行の型)、dは派生型(ドメインなど)、eは列挙型、pは疑似型、rは範囲型となります。typrelidおよびtypbasetypeも参照してください。typcategoryは、パーサがどの暗黙のキャストが"選択"されるべきか決定するのに使用されるデータ型の任意の分類です。表45-51を参照してください。型がtypcategory内で選択されたキャスト対象である場合に真となります。型が定義されると真、ここが未定義型に対する予備の場所である時は偽。typisdefinedが偽の場合、型名と名前空間とOID以外は信頼すべきでありません。配列入力の構文解析をする際にこの型の2つの値を分離する文字。区切り文字は配列データ型ではなく配列要素データ型に関連付けられることに注意してください。これが複合型(typtypeを参照)であれば、この列は関連するテーブルを定義するpg_class項目を指します。複合型でない場合はゼロです。typelemがゼロでない場合、これはpg_typeの別の列を特定します。現在の型は、typelem型の値を生成する配列のように、配列要素を持てるようになります。0)型は同時に非ゼロのtypelemを持つことができます。固定長型がtypelemを持つ場合、その内部表現は他のデータを持たないtypelemデータ型の数個の値でなければなりません。可変長配列型には配列サブルーチンで定義されたヘッダを持ちます。typarrayがゼロでない場合、typarrayはpg_type内のもうひとつの行を特定します。ひとつの行は、この型を要素として持っている"本当"の配列型です。独自のANALYZE関数。chartypalignはこの型の値を格納する際に必要な整列です。ディスクに書き込む時やほとんどのPostgreSQL内の値を表現するために使用されます。ディスクに完全な列を格納する時など、いくつかの値が連続して格納される際、境界を特定するためにこの型のデータの前にパッドが挿入されます。整列参照はシーケンスの一番最初にあります。使用可能な値は以下の通りです。char整列(すなわち、整列は必要ありません)。short整列(多くのマシンでは2バイトになります)。int整列(多くのマシンでは4バイトになります)。double整列(多くのマシンでは8バイトになりますが、必ずしもすべてがそうであるとは限りません)。システムテーブルで使用されている型については、pg_typeシステムカタログで定義されている大きさと整列は、コンパイラがテーブルの行を表現する構造体に対して位置決めを行うものと厳密に一致することを求められています。-1のもの)に対して型がTOASTに対応しているか、また、この型の属性のデフォルト戦略が何であるべきかを伝えます。使用可能な値は以下の通りです。p:値は必ずそのまま格納されなければいけません。e:値は"従属的"リレーションに格納できます(リレーションに関してはpg_class.reltoastrelidを参照してください)。m:値は圧縮されたインラインに格納することができます。x:値は圧縮されたインラインもしくは"従属"格納領域に格納することができます。m列も従属格納領域に移すことができますが、最後の切札としてでなければいけません(eとx列が先に移動されます)。booltypnotnullは型に対し非NULL制約を表します。ドメインでのみ使用されます。pg_type.oidもしこれがドメイン(typtypeを参照)であれば、typbasetypeはこれが基づいている型を指定します。ドメインでない場合はゼロです。(基本型がtypmodを使用しない場合は-1)。この型がドメインでない場合は-1です。(つまり、typbasetypeは配列型です。配列型のドメインでない場合はゼロです。pg_collation.oidtypcollationは型の照合順序を指定します。型が照合順序をサポートしない場合、ゼロになります。照合順序をサポートする基本型はここでDEFAULT_COLLATION_OIDを持ちます。照合順序の設定可能な型全体のドメインは、そのドメインで照合順序が指定されていれば、他の照合順序OIDを持つことができます。pg_node_treetypdefaultbinがNULLでない場合、これは型のデフォルト式のnodeToString()表現です。ドメインでのみ使用されます。text関連するデフォルト値を持たない型であればtypdefaultはNULLです。typdefaultbinがNULLでない場合、typdefaultは、typdefaultbinによって表される人間が見てわかる形式のデフォルト式を含む必要があります。typdefaultbinがNULLでtypdefaultがNULLでない場合、typdefaultは型のデフォルト値の外部表現です。これは、定数を生成するために型の入力変換処理に渡されることがあります。詳細はGRANTとREVOKEを参照してください。表45-51はシステムで定義されたtypcategoryの値の一覧です。今後この一覧に追加されるものは同様に大文字のASCII文字になります。他のすべてのASCII文字はユーザ定義のカテゴリのために予約されています。pg_user_mapping。