From: Bruce Momjian Date: Mon, 9 Mar 2009 13:08:05 +0000 (+0000) Subject: Add summarization comment about visibility functions. X-Git-Tag: REL8_4_BETA1~188 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fd497ab6506d3c4a751c22c03d31eeff1da90498;p=postgresql Add summarization comment about visibility functions. Add URL about the Halloween problem. --- diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c index 06720a2ea7..3f5f7de163 100644 --- a/src/backend/utils/time/tqual.c +++ b/src/backend/utils/time/tqual.c @@ -26,12 +26,31 @@ * 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 * * 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 * 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.