Add summarization comment about visibility functions.
authorBruce Momjian <bruce@momjian.us>
Mon, 9 Mar 2009 13:08:05 +0000 (13:08 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 9 Mar 2009 13:08:05 +0000 (13:08 +0000)
Add URL about the Halloween problem.

src/backend/utils/time/tqual.c

index dbfbb023aea3449ce896b90e8d56a891095e1a49..3d04a927df7281040b2175fe12334b5beea01a76 100644 (file)
  * subtransactions of our own main transaction and so there can't be any
  * 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) 1994, Regents of the University of California
@@ -277,7 +296,7 @@ HeapTupleSatisfiesSelf(HeapTupleHeader tuple, Snapshot snapshot, Buffer buffer)
  *
  * Note we do _not_ include changes made by the current command.  This
  * 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:
  *             Assumes heap tuple is valid.