postgresql/src/include
Tom Lane bedb78d386 Implement sharable row-level locks, and use them for foreign key references
to eliminate unnecessary deadlocks.  This commit adds SELECT ... FOR SHARE
paralleling SELECT ... FOR UPDATE.  The implementation uses a new SLRU
data structure (managed much like pg_subtrans) to represent multiple-
transaction-ID sets.  When more than one transaction is holding a shared
lock on a particular row, we create a MultiXactId representing that set
of transactions and store its ID in the row's XMAX.  This scheme allows
an effectively unlimited number of row locks, just as we did before,
while not costing any extra overhead except when a shared lock actually
has to be shared.   Still TODO: use the regular lock manager to control
the grant order when multiple backends are waiting for a row lock.

Alvaro Herrera and Tom Lane.
2005-04-28 21:47:18 +00:00
..
access Implement sharable row-level locks, and use them for foreign key references 2005-04-28 21:47:18 +00:00
bootstrap Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
catalog Implement sharable row-level locks, and use them for foreign key references 2005-04-28 21:47:18 +00:00
commands First phase of project to use fixed OIDs for all system catalogs and 2005-04-14 01:38:22 +00:00
executor Remove support for OR'd indexscans internal to a single IndexScan plan 2005-04-25 01:30:14 +00:00
lib Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
libpq Finish up the flat-files project: get rid of GetRawDatabaseInfo() hack 2005-02-26 18:43:34 +00:00
mb Add support for Win1252 encoding. 2005-03-14 18:31:25 +00:00
nodes Implement sharable row-level locks, and use them for foreign key references 2005-04-28 21:47:18 +00:00
optimizer Replace slightly klugy create_bitmap_restriction() function with a 2005-04-25 02:14:48 +00:00
parser Implement sharable row-level locks, and use them for foreign key references 2005-04-28 21:47:18 +00:00
port Change Win32 O_SYNC method to O_DSYNC because that is what the method 2005-03-24 04:36:20 +00:00
postmaster Add missing identification comment, remove entirely inappropriate include 2005-03-13 23:32:26 +00:00
regex Solve the 'Turkish problem' with undesirable locale behavior for case 2004-05-07 00:24:59 +00:00
rewrite Make the behavior of HAVING without GROUP BY conform to the SQL spec. 2005-03-10 23:21:26 +00:00
storage Implement sharable row-level locks, and use them for foreign key references 2005-04-28 21:47:18 +00:00
tcop Revise TupleTableSlot code to avoid unnecessary construction and disassembly 2005-03-16 21:38:10 +00:00
utils Marginal hack to use a specialized hash function for dynahash hashtables 2005-04-14 20:32:43 +00:00
Makefile Use 'cp' and 'chmod' in place of 'install' to install header files. 2005-03-25 23:22:54 +00:00
c.h Implement sharable row-level locks, and use them for foreign key references 2005-04-28 21:47:18 +00:00
fmgr.h First phase of OUT-parameters project. We can now define and use SQL 2005-03-31 22:46:33 +00:00
funcapi.h plpgsql does OUT parameters, as per my proposal a few weeks ago. 2005-04-05 06:22:17 +00:00
getaddrinfo.h Some more missed copyright notices. Many of these look like they 2005-01-01 20:44:34 +00:00
getopt_long.h Some more missed copyright notices. Many of these look like they 2005-01-01 20:44:34 +00:00
miscadmin.h Finish up the flat-files project: get rid of GetRawDatabaseInfo() hack 2005-02-26 18:43:34 +00:00
pg_config.h.in Define snprintf() to call pg_snprintf() so our own snprintf-like 2005-03-11 17:20:35 +00:00
pg_config.h.win32 Win32 8.1 stamp. 2005-01-18 14:39:46 +00:00
pg_config_manual.h Officially decouple FUNC_MAX_ARGS from INDEX_MAX_KEYS, and set the 2005-03-29 03:01:32 +00:00
pgstat.h Update copyrights that were missed. 2005-01-01 05:43:09 +00:00
pgtime.h Attached patch gets rid of the global timezone in the following steps: 2005-04-19 03:13:59 +00:00
port.h Kerberos fixes from Magnus Hagander --- in theory Kerberos 5 auth 2005-03-25 00:34:31 +00:00
postgres.h First phase of project to use fixed OIDs for all system catalogs and 2005-04-14 01:38:22 +00:00
postgres_ext.h Pgindent run for 8.0. 2004-08-29 05:07:03 +00:00
postgres_fe.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
rusagestub.h Tag appropriate files for rc3 2004-12-31 22:04:05 +00:00
strdup.h Fix an obsolete file path mentioned in a comment. 2004-01-25 22:19:42 +00:00