I have applied the following comment to summarize the visibility rules. I also added a URL about the Halloween problem.
-- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
Index: src/backend/utils/time/tqual.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v retrieving revision 1.111 diff -c -c -r1.111 tqual.c *** src/backend/utils/time/tqual.c 1 Jan 2009 17:23:53 -0000 1.111 --- src/backend/utils/time/tqual.c 9 Mar 2009 12:39:09 -0000 *************** *** 26,31 **** --- 26,50 ---- * 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,283 **** * * 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. * * Note: * Assumes heap tuple is valid. --- 296,302 ---- * * 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, http://en.wikipedia.org/wiki/Halloween_Problem. * * Note: * Assumes heap tuple is valid.
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers