14th September 2023: PostgreSQL 16 Released!
Unsupported versions: 7.0
This documentation is for an unsupported version of PostgreSQL.
You may want to view the same page for the current version, or one of the other supported versions listed above instead.

Fields and Columns


A field is either an attribute of a given class or one of the following:


stands for the unique identifier of an instance which is added by Postgres to all instances automatically. Oids are not reused and are 32 bit quantities.


The identity of the inserting transaction.


The identity of the deleting transaction.


The command identifier within the transaction.


The identity of the deleting command.

For further information on these fields consult Stonebraker, Hanson, Hong, 1987. Times are represented internally as instances of the abstime data type. Transaction and command identifiers are 32 bit quantities. Transactions are assigned sequentially starting at 512.


A column is a construct of the form:

instance{.composite_field}.field `['number`]'
instance identifies a particular class and can be thought of as standing for the instances of that class. An instance variable is either a class name, a surrogate for a class defined by means of a FROM clause, or the keyword NEW or CURRENT. NEW and CURRENT can only appear in the action portion of a rule, while other instance variables can be used in any SQL statement. composite_field is a field of of one of the Postgres composite types, while successive composite fields address attributes in the class(s) to which the composite field evaluates. Lastly, field is a normal (base type) field in the class(s) last addressed. If field is of type array, then the optional number designator indicates a specific element in the array. If no number is indicated, then all array elements are returned.