Add summarization comment about visibility functions.

Add URL about the Halloween problem.
This commit is contained in:
Bruce Momjian 2009-03-09 13:08:05 +00:00
parent e43fd89762
commit fd497ab650

View File

@ -26,12 +26,31 @@
* subtransactions of our own main transaction and so there can't be any * subtransactions of our own main transaction and so there can't be any
* race condition. * race condition.
* *
* Summary of visibility functions:
*
* HeapTupleSatisfiesMVCC()
* visible to supplied snapshot, excludes current command
* HeapTupleSatisfiesNow()
* visible to instant snapshot, excludes current command
* HeapTupleSatisfiesUpdate()
* like HeapTupleSatisfiesNow(), but with user-supplied command
* counter and more complex result
* HeapTupleSatisfiesSelf()
* visible to instant snapshot and current command
* HeapTupleSatisfiesDirty()
* like HeapTupleSatisfiesSelf(), but includes open transactions
* HeapTupleSatisfiesVacuum()
* visible to any running transaction, used by VACUUM
* HeapTupleSatisfiesToast()
* visible unless part of interrupted vacuum, used for TOAST
* HeapTupleSatisfiesAny()
* all tuples are visible
* *
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California * Portions Copyright (c) 1994, Regents of the University of California
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/utils/time/tqual.c,v 1.111 2009/01/01 17:23:53 momjian Exp $ * $PostgreSQL: pgsql/src/backend/utils/time/tqual.c,v 1.112 2009/03/09 13:08:05 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -277,7 +296,7 @@ HeapTupleSatisfiesSelf(HeapTupleHeader tuple, Snapshot snapshot, Buffer buffer)
* *
* Note we do _not_ include changes made by the current command. This * Note we do _not_ include changes made by the current command. This
* solves the "Halloween problem" wherein an UPDATE might try to re-update * solves the "Halloween problem" wherein an UPDATE might try to re-update
* its own output tuples. * its own output tuples, http://en.wikipedia.org/wiki/Halloween_Problem.
* *
* Note: * Note:
* Assumes heap tuple is valid. * Assumes heap tuple is valid.