postgresql/src/include/access
Tom Lane 895a94de6d Avoid incrementing the CommandCounter when CommandCounterIncrement is called
but no database changes have been made since the last CommandCounterIncrement.
This should result in a significant improvement in the number of "commands"
that can typically be performed within a transaction before hitting the 2^32
CommandId size limit.  In particular this buys back (and more) the possible
adverse consequences of my previous patch to fix plan caching behavior.

The implementation requires tracking whether the current CommandCounter
value has been "used" to mark any tuples.  CommandCounter values stored into
snapshots are presumed not to be used for this purpose.  This requires some
small executor changes, since the executor used to conflate the curcid of
the snapshot it was using with the command ID to mark output tuples with.
Separating these concepts allows some small simplifications in executor APIs.

Something for the TODO list: look into having CommandCounterIncrement not do
AcceptInvalidationMessages.  It seems fairly bogus to be doing it there,
but exactly where to do it instead isn't clear, and I'm disinclined to mess
with asynchronous behavior during late beta.
2007-11-30 21:22:54 +00:00
..
attnum.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
clog.h Support an optional asynchronous commit mode, in which we don't flush WAL 2007-08-01 22:45:09 +00:00
genam.h pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
gin.h GIN index build's allocatedMemory counter needs to be long, not uint32. 2007-11-16 21:50:06 +00:00
gist.h Minor tweaking of index special-space definitions so that the various 2007-04-09 22:04:08 +00:00
gist_private.h Support an optional asynchronous commit mode, in which we don't flush WAL 2007-08-01 22:45:09 +00:00
gistscan.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
hash.h pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
heapam.h pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
hio.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
htup.h Re-run pgindent with updated list of typedefs. (Updated README should 2007-11-15 22:25:18 +00:00
itup.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
multixact.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
nbtree.h Repair still another bug in the btree page split WAL reduction patch: 2007-11-16 19:53:50 +00:00
printtup.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
reloptions.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
relscan.h pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
rewriteheap.h pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
rmgr.h Fix recently-understood problems with handling of XID freezing, particularly 2006-11-05 22:42:10 +00:00
sdir.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
skey.h Make 'col IS NULL' clauses be indexable conditions. 2007-04-06 22:33:43 +00:00
slru.h pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
subtrans.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
transam.h pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
tupdesc.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
tupmacs.h pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
tuptoaster.h pgindent run for 8.3. 2007-11-15 21:14:46 +00:00
twophase.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
twophase_rmgr.h Fix up pgstats counting of live and dead tuples to recognize that committed 2007-05-27 03:50:39 +00:00
valid.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
xact.h Avoid incrementing the CommandCounter when CommandCounterIncrement is called 2007-11-30 21:22:54 +00:00
xlog.h Re-run pgindent with updated list of typedefs. (Updated README should 2007-11-15 22:25:18 +00:00
xlog_internal.h To support external compression of archived WAL data, add a flag bit to 2007-05-20 21:08:19 +00:00
xlogdefs.h Support an optional asynchronous commit mode, in which we don't flush WAL 2007-08-01 22:45:09 +00:00
xlogutils.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00