Return-Path: postarch
Received: by postgres.Berkeley.EDU (5.61/1.29)
	id AA02336; Tue, 4 Feb 92 19:04:40 -0800
Message-Id: <9202050304.AA02336@postgres.Berkeley.EDU>
From: postarch (Postgres Mailing Archive)
Subject: Re: postgres attributes
To: postgres@postgres.berkeley.edu
Sender: pg_adm@postgres.berkeley.edu
Reply-To: mer@postgres.berkeley.edu
In-Reply-To: Your message of "Tue, 04 Feb 92 10:29:22 PST."
             <9202041829.AA24059@postgres.Berkeley.EDU> 
Date: Tue, 04 Feb 92 19:04:29 PST

you write:

> where can i find documentation and/or examples on
> the use of the attributes assigned by postgres to
> all of the classes created?

As far as I can tell it is not available. Most of these attributes
are only useful to the system.  I can give you a (very) brief description 
of each...

> ---------------
> | ctid        |

This is the tuple id.  It uniquely identifies the tuple within its
relation.  Probably only useful in functions in the backend.

> ---------------
> | lock        |

used to hold rule lock information.

> ---------------
> | oid         |

Object identifier.  Uniquely identifies the tuple (object) in the database.
There are more uses for this than I can possibly enumerate.

> ---------------
> | xmin        |

I believe this holds the transaction id which created the tuple.

> ---------------
> | xmax        |

and this holds the transaction id which updated or delete the tuple.

> ---------------
> | cmin        |

command id in which the tuple was created.  Postgres keeps command id's
so that updates inside of one transaction might be visible later inside
that same transaction.

> ---------------
> | cmax        |

command id in which the tuple was updated or deleted.

> ---------------
> | chain       |

I believe this is intended for use in tuple a differencing scheme. It stores
the tuple id of the tuple that was replaced when this tuple was created.
We don't do tuple differencing so this gets set but is currently unused.

> ---------------
> | anchor      |

Anchor is no longer used and I don't know what purpose it used to serve.

> ---------------
> | tmin        |

The abstime at which the tuple was created and became valid.  Used in 
time range queries.

> ---------------
> | tmax        |

The abstime at which the tuple updated or deleted.  Also used in time range 
queries, it defines the endpoint (latest time) for the time interval in which 
the tuple is valid (epoch when the tuple is still valid).

> ---------------
> | vtype       |
> ---------------

This one is also a mystery to me. You probably shouldn't worry about it.


Jeff Meredith
mer@postgres.berkeley.edu
