postgresql/src/backend/commands
Tom Lane 6bd4f401b0 Replace the former method of determining snapshot xmax --- to wit, calling
ReadNewTransactionId from GetSnapshotData --- with a "latestCompletedXid"
variable that is updated during transaction commit or abort.  Since
latestCompletedXid is written only in places that had to lock ProcArrayLock
exclusively anyway, and is read only in places that had to lock ProcArrayLock
shared anyway, it adds no new locking requirements to the system despite being
cluster-wide.  Moreover, removing ReadNewTransactionId from snapshot
acquisition eliminates the need to take both XidGenLock and ProcArrayLock at
the same time.  Since XidGenLock is sometimes held across I/O this can be a
significant win.  Some preliminary benchmarking suggested that this patch has
no effect on average throughput but can significantly improve the worst-case
transaction times seen in pgbench.  Concept by Florian Pflug, implementation
by Tom Lane.
2007-09-08 20:31:15 +00:00
..
Makefile Tsearch2 functionality migrates to core. The bulk of this work is by 2007-08-21 01:11:32 +00:00
aggregatecmds.c Support enum data types. Along the way, use macros for the values of 2007-04-02 03:49:42 +00:00
alter.c Tsearch2 functionality migrates to core. The bulk of this work is by 2007-08-21 01:11:32 +00:00
analyze.c Make large sequential scans and VACUUMs work in a limited-size "ring" of 2007-05-30 20:12:03 +00:00
async.c RESET SESSION, plus related new DDL commands. Patch from Marko Kreen, 2007-04-12 06:53:49 +00:00
cluster.c Fix dumb compile error in the last patch. 2007-05-19 01:02:34 +00:00
comment.c Tsearch2 functionality migrates to core. The bulk of this work is by 2007-08-21 01:11:32 +00:00
conversioncmds.c Fix up foreign-key mechanism so that there is a sound semantic basis for the 2007-02-14 01:58:58 +00:00
copy.c Don't take ProcArrayLock while exiting a transaction that has no XID; there is 2007-09-07 20:59:26 +00:00
dbcommands.c Support SET FROM CURRENT in CREATE/ALTER FUNCTION, ALTER DATABASE, ALTER ROLE. 2007-09-03 18:46:30 +00:00
define.c Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
discard.c Rename the newly-added commands for discarding session state. 2007-04-26 16:13:15 +00:00
explain.c Arrange to cache a ResultRelInfo in the executor's EState for relations that 2007-08-15 21:39:50 +00:00
functioncmds.c Support SET FROM CURRENT in CREATE/ALTER FUNCTION, ALTER DATABASE, ALTER ROLE. 2007-09-03 18:46:30 +00:00
indexcmds.c Allow CREATE INDEX CONCURRENTLY to disregard transactions in other 2007-09-07 00:58:57 +00:00
lockcmds.c Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
opclasscmds.c Wording cleanup for error messages. Also change can't -> cannot. 2007-02-01 19:10:30 +00:00
operatorcmds.c Minimal message corrections found by spell checker. 2007-06-02 23:36:35 +00:00
portalcmds.c Modify processing of DECLARE CURSOR and EXPLAIN so that they can resolve the 2007-04-27 22:05:49 +00:00
prepare.c Separate parse-analysis for utility commands out of parser/analyze.c 2007-06-23 22:12:52 +00:00
proclang.c Implement function-local GUC parameter settings, as per recent discussion. 2007-09-03 00:39:26 +00:00
schemacmds.c Separate parse-analysis for utility commands out of parser/analyze.c 2007-06-23 22:12:52 +00:00
sequence.c Implement lazy XID allocation: transactions that do not modify any database 2007-09-05 18:10:48 +00:00
tablecmds.c Make eval_const_expressions() preserve typmod when simplifying something like 2007-09-06 17:31:58 +00:00
tablespace.c Support an optional asynchronous commit mode, in which we don't flush WAL 2007-08-01 22:45:09 +00:00
trigger.c Arrange to cache a ResultRelInfo in the executor's EState for relations that 2007-08-15 21:39:50 +00:00
tsearchcmds.c Suppress testing the options of CREATE TEXT SEARCH DICTIONARY during 2007-08-22 22:30:20 +00:00
typecmds.c Provide for binary input/output of enums, to fix complaint from Merlin Moncure. 2007-09-04 16:41:43 +00:00
user.c Support SET FROM CURRENT in CREATE/ALTER FUNCTION, ALTER DATABASE, ALTER ROLE. 2007-09-03 18:46:30 +00:00
vacuum.c Replace the former method of determining snapshot xmax --- to wit, calling 2007-09-08 20:31:15 +00:00
vacuumlazy.c Implement lazy XID allocation: transactions that do not modify any database 2007-09-05 18:10:48 +00:00
variable.c Switch over to using the src/timezone functions for formatting timestamps 2007-08-04 01:26:54 +00:00
view.c Fix a couple of misbehaviors rooted in the fact that the default creation 2007-08-27 03:36:08 +00:00