postgresql/src/backend
Tom Lane e85a01df67 Clean up the representation of special snapshots by including a "method
pointer" in every Snapshot struct.  This allows removal of the case-by-case
tests in HeapTupleSatisfiesVisibility, which should make it a bit faster
(I didn't try any performance tests though).  More importantly, we are no
longer violating portable C practices by assuming that small integers are
distinct from all pointer values, and HeapTupleSatisfiesDirty no longer
has a non-reentrant API involving side-effects on a global variable.

There were a couple of places calling HeapTupleSatisfiesXXX routines
directly rather than through the HeapTupleSatisfiesVisibility macro.
Since these places had to be changed anyway, I chose to make them go
through the macro for uniformity.

Along the way I renamed HeapTupleSatisfiesSnapshot to HeapTupleSatisfiesMVCC
to emphasize that it's only used with MVCC-type snapshots.  I was sorely
tempted to rename HeapTupleSatisfiesVisibility to HeapTupleSatisfiesSnapshot,
but forebore for the moment to avoid confusion and reduce the likelihood that
this patch breaks some of the pending patches.  Might want to reconsider
doing that later.
2007-03-25 19:45:14 +00:00
..
access Clean up the representation of special snapshots by including a "method 2007-03-25 19:45:14 +00:00
bootstrap First phase of plan-invalidation project: create a plan cache management 2007-03-13 00:33:44 +00:00
catalog Clean up the representation of special snapshots by including a "method 2007-03-25 19:45:14 +00:00
commands Fix plancache so that any required replanning is done with the same 2007-03-23 19:53:52 +00:00
executor Clean up the representation of special snapshots by including a "method 2007-03-25 19:45:14 +00:00
lib Remove the currently unused FRONTEND case in dllist.c. This allows the usage 2007-03-22 18:57:52 +00:00
libpq Add lo_truncate() to backend and libpq for large object truncation. 2007-03-03 19:52:47 +00:00
main Cleanup the bootstrap code a little, and rename "dummy procs" in the code 2007-03-07 13:35:03 +00:00
nodes Fix up the remaining places where the expression node structure would lose 2007-03-17 00:11:05 +00:00
optimizer Fix some problems with selectivity estimation for partial indexes. 2007-03-21 22:18:12 +00:00
parser Changes pg_trigger and extend pg_rewrite in order to allow triggers and 2007-03-19 23:38:32 +00:00
po Translation updates 2006-12-02 01:16:16 +00:00
port Native shared memory implementation for win32. 2007-03-21 14:39:23 +00:00
postmaster Set the node properly, per Tom. 2007-03-23 21:57:10 +00:00
regex Wording cleanup for error messages. Also change can't -> cannot. 2007-02-01 19:10:30 +00:00
rewrite Changes pg_trigger and extend pg_rewrite in order to allow triggers and 2007-03-19 23:38:32 +00:00
storage Clean up the representation of special snapshots by including a "method 2007-03-25 19:45:14 +00:00
tcop Arrange for PreventTransactionChain to reject commands submitted as part 2007-03-22 19:55:04 +00:00
utils Clean up the representation of special snapshots by including a "method 2007-03-25 19:45:14 +00:00
Makefile Replace useless uses of := by = in makefiles. 2007-02-09 15:56:00 +00:00
nls.mk Add _ to gettext triggers. Must have been forgotten here when it was introduced. 2005-10-04 11:14:03 +00:00