カラムは与えられたテーブルのユーザ定義カラム か、もしくは下記のシステム定義カラムのどちらかです。
行の一意な識別子(オブジェクト ID)。これは Postgres が全ての 行に自動的に加える通番の数です。OID は再使用されることはなく 32 ビット長です。
この行を含むテーブルの OID です。この属性は特に、継承階層 からのセレクトでは便利です。なぜならそれなしでは、どのテーブル からその行が来たのかわかりづらいからです。tableoid は テーブル名を得るために pg_class の OID 属性に結合すること ができます。
このタプルの挿入トランザクションの識別情報(トランザクションID) です。(注:タプルは行の個別の状態です。行のそれぞれの UPDATE は同じ論理行のための新しいタプルを作ります。
挿入トランザクション内のコマンド識別子(ゼロから始まる)です。
削除トランザクションの識別情報(トランザクションID)です。 削除されていないタプルではゼロです。実際には、目に見える タプルについてはゼロ以外であることはありません。
削除トランザクション内のコマンド識別子、もしくはゼロです。 これも同じく、目に見えるタプルについてはゼロ以外であることは ありません。
そのテーブル内のタプルのタプルIDです。これは組 (ブロック数、ブロック内のタプルインデックス)でタプルの物理的 位置を識別します。ctid はタプルを素早く見つけるために使うことが できますが、行の ctid は更新されるごと、あるいはバキューム で動かされる度に変わります。したがって、ctid は長期の行 識別子としては使えません。OID、あるいはさらに良いのは ユーザ定義の通番数ですが、論理行を識別するためにはこれらを 使うべきです。
システム属性のさらに詳しい情報については Stonebraker, Hanson, Hong, 1987を見て下さい。 トランザクションとコマンド識別子は 32 ビットです。