<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/postgresql.git/contrib/userlock, branch master</title>
<subtitle>git.postgresql.org: git/postgresql.git
</subtitle>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/'/>
<entry>
<title>Remove contrib modules that have been migrated to pgfoundry: adddepend,</title>
<updated>2006-09-05T17:20:29+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2006-09-05T17:20:29+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=af7d257e21aae3d75c46977482309b658b3a29d7'/>
<id>af7d257e21aae3d75c46977482309b658b3a29d7</id>
<content type='text'>
dbase, dbmirror, fulltextindex, mac, userlock; or abandoned: mSQL-interface,
tips.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
dbase, dbmirror, fulltextindex, mac, userlock; or abandoned: mSQL-interface,
tips.
</pre>
</div>
</content>
</entry>
<entry>
<title>Change the relation_open protocol so that we obtain lock on a relation</title>
<updated>2006-07-31T20:09:10+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2006-07-31T20:09:10+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=09d3670df3e4593be1d2299a62d982829016b847'/>
<id>09d3670df3e4593be1d2299a62d982829016b847</id>
<content type='text'>
(table or index) before trying to open its relcache entry.  This fixes
race conditions in which someone else commits a change to the relation's
catalog entries while we are in process of doing relcache load.  Problems
of that ilk have been reported sporadically for years, but it was not
really practical to fix until recently --- for instance, the recent
addition of WAL-log support for in-place updates helped.

Along the way, remove pg_am.amconcurrent: all AMs are now expected to support
concurrent update.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(table or index) before trying to open its relcache entry.  This fixes
race conditions in which someone else commits a change to the relation's
catalog entries while we are in process of doing relcache load.  Problems
of that ilk have been reported sporadically for years, but it was not
really practical to fix until recently --- for instance, the recent
addition of WAL-log support for in-place updates helped.

Along the way, remove pg_am.amconcurrent: all AMs are now expected to support
concurrent update.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow /contrib include files to compile on their own.</title>
<updated>2006-07-10T22:06:11+00:00</updated>
<author>
<name>Bruce Momjian</name>
<email>bruce@momjian.us</email>
</author>
<published>2006-07-10T22:06:11+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=c5133e5920a802201824effd13f16f606b8d6971'/>
<id>c5133e5920a802201824effd13f16f606b8d6971</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Magic blocks don't do us any good unless we use 'em ... so install one</title>
<updated>2006-05-30T22:12:16+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2006-05-30T22:12:16+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=a0ffab351e2dca12200e95c45f6edf5ddebe78b0'/>
<id>a0ffab351e2dca12200e95c45f6edf5ddebe78b0</id>
<content type='text'>
in every shared library.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
in every shared library.
</pre>
</div>
</content>
</entry>
<entry>
<title>contrib uninstall scripts</title>
<updated>2006-02-27T12:54:39+00:00</updated>
<author>
<name>Peter Eisentraut</name>
<email>peter_e@gmx.net</email>
</author>
<published>2006-02-27T12:54:39+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=fe83b3ebc6b8d65fbb14100bdc476b7dbc32454c'/>
<id>fe83b3ebc6b8d65fbb14100bdc476b7dbc32454c</id>
<content type='text'>
by David Fetter
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
by David Fetter
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify lock manager data structures by making a clear separation between</title>
<updated>2005-12-09T01:22:04+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2005-12-09T01:22:04+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=c599a247bbe55a29737c78e122b77de34c8bf917'/>
<id>c599a247bbe55a29737c78e122b77de34c8bf917</id>
<content type='text'>
the data defining the semantics of a lock method (ie, conflict resolution
table and ancillary data, which is all constant) and the hash tables
storing the current state.  The only thing we give up by this is the
ability to use separate hashtables for different lock methods, but there
is no need for that anyway.  Put some extra fields into the LockMethod
definition structs to clean up some other uglinesses, like hard-wired
tests for DEFAULT_LOCKMETHOD and USER_LOCKMETHOD.  This commit doesn't
do anything about the performance issues we were discussing, but it clears
away some of the underbrush that's in the way of fixing that.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the data defining the semantics of a lock method (ie, conflict resolution
table and ancillary data, which is all constant) and the hash tables
storing the current state.  The only thing we give up by this is the
ability to use separate hashtables for different lock methods, but there
is no need for that anyway.  Put some extra fields into the LockMethod
definition structs to clean up some other uglinesses, like hard-wired
tests for DEFAULT_LOCKMETHOD and USER_LOCKMETHOD.  This commit doesn't
do anything about the performance issues we were discussing, but it clears
away some of the underbrush that's in the way of fixing that.
</pre>
</div>
</content>
</entry>
<entry>
<title>PGXS should be set with := not =, as specified in the documentation,</title>
<updated>2005-09-27T17:13:14+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2005-09-27T17:13:14+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=0b36cb83dc53b2455ae4a5d6d10587ad0a3c53fa'/>
<id>0b36cb83dc53b2455ae4a5d6d10587ad0a3c53fa</id>
<content type='text'>
to avoid useless multiple executions of pg_config.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
to avoid useless multiple executions of pg_config.
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify shared-memory lock data structures as per recent discussion:</title>
<updated>2005-06-14T22:15:33+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2005-06-14T22:15:33+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=8563ccae2caf0119355c5c80cfa59da19ce809d6'/>
<id>8563ccae2caf0119355c5c80cfa59da19ce809d6</id>
<content type='text'>
it is sufficient to track whether a backend holds a lock or not, and
store information about transaction vs. session locks only in the
inside-the-backend LocalLockTable.  Since there can now be but one
PROCLOCK per lock per backend, LockCountMyLocks() is no longer needed,
thus eliminating some O(N^2) behavior when a backend holds many locks.
Also simplify the LockAcquire/LockRelease API by passing just a
'sessionLock' boolean instead of a transaction ID.  The previous API
was designed with the idea that per-transaction lock holding would be
important for subtransactions, but now that we have subtransactions we
know that this is unwanted.  While at it, add an 'isTempObject' parameter
to LockAcquire to indicate whether the lock is being taken on a temp
table.  This is not used just yet, but will be needed shortly for
two-phase commit.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
it is sufficient to track whether a backend holds a lock or not, and
store information about transaction vs. session locks only in the
inside-the-backend LocalLockTable.  Since there can now be but one
PROCLOCK per lock per backend, LockCountMyLocks() is no longer needed,
thus eliminating some O(N^2) behavior when a backend holds many locks.
Also simplify the LockAcquire/LockRelease API by passing just a
'sessionLock' boolean instead of a transaction ID.  The previous API
was designed with the idea that per-transaction lock holding would be
important for subtransactions, but now that we have subtransactions we
know that this is unwanted.  While at it, add an 'isTempObject' parameter
to LockAcquire to indicate whether the lock is being taken on a temp
table.  This is not used just yet, but will be needed shortly for
two-phase commit.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve LockAcquire API per my recent proposal.  All error conditions</title>
<updated>2005-05-29T22:45:02+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2005-05-29T22:45:02+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=140b078d2a21acedc3398896f0f360f5d01ffb6c'/>
<id>140b078d2a21acedc3398896f0f360f5d01ffb6c</id>
<content type='text'>
are now reported via elog, eliminating the need to test the result code
at most call sites.  Make it possible for the caller to distinguish a
freshly acquired lock from one already held in the current transaction.
Use that capability to avoid redundant AcceptInvalidationMessages() calls
in LockRelation().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
are now reported via elog, eliminating the need to test the result code
at most call sites.  Make it possible for the caller to distinguish a
freshly acquired lock from one already held in the current transaction.
Use that capability to avoid redundant AcceptInvalidationMessages() calls
in LockRelation().
</pre>
</div>
</content>
</entry>
<entry>
<title>Factor out lock cleanup code that is needed in several places in lock.c.</title>
<updated>2005-05-19T23:30:18+00:00</updated>
<author>
<name>Tom Lane</name>
<email>tgl@sss.pgh.pa.us</email>
</author>
<published>2005-05-19T23:30:18+00:00</published>
<link rel='alternate' type='text/html' href='http://trove.baserock.org/cgit/delta/postgresql.git/commit/?id=191b13aacaae7557d3eab6733c06269ce2c0993a'/>
<id>191b13aacaae7557d3eab6733c06269ce2c0993a</id>
<content type='text'>
Also, remove the rather useless return value of LockReleaseAll.  Change
response to detection of corruption in the shared lock tables to PANIC,
since that is the only way of cleaning up fully.
Originally an idea of Heikki Linnakangas, variously hacked on by
Alvaro Herrera and Tom Lane.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also, remove the rather useless return value of LockReleaseAll.  Change
response to detection of corruption in the shared lock tables to PANIC,
since that is the only way of cleaning up fully.
Originally an idea of Heikki Linnakangas, variously hacked on by
Alvaro Herrera and Tom Lane.
</pre>
</div>
</content>
</entry>
</feed>
