postgresql/src/backend
Tom Lane bd272cace6 Mega-commit to make heap_open/heap_openr/heap_close take an
additional argument specifying the kind of lock to acquire/release (or
'NoLock' to do no lock processing).  Ensure that all relations are locked
with some appropriate lock level before being examined --- this ensures
that relevant shared-inval messages have been processed and should prevent
problems caused by concurrent VACUUM.  Fix several bugs having to do with
mismatched increment/decrement of relation ref count and mismatched
heap_open/close (which amounts to the same thing).  A bogus ref count on
a relation doesn't matter much *unless* a SI Inval message happens to
arrive at the wrong time, which is probably why we got away with this
sloppiness for so long.  Repair missing grab of AccessExclusiveLock in
DROP TABLE, ALTER/RENAME TABLE, etc, as noted by Hiroshi.
Recommend 'make clean all' after pulling this update; I modified the
Relation struct layout slightly.
Will post further discussion to pghackers list shortly.
1999-09-18 19:08:25 +00:00
..
access Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
bootstrap Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
catalog Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
commands Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
executor Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
lib Cope with versions of vsnprintf() written by people who 1999-09-08 16:31:38 +00:00
libpq cygwin doesn't have an endian.h, but defines BYTE_ORDER in sys/param.h 1999-09-12 22:27:47 +00:00
main Move some system includes into c.h, and remove duplicates. 1999-07-17 20:18:55 +00:00
nodes Minor improvements to stringinfo package to make it more 1999-08-31 01:28:37 +00:00
optimizer Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
parser Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
port Get rid of elog(DEBUG) in snprintf emulation ... it's just 1999-09-09 03:13:22 +00:00
postmaster Re-add getopt.h check, remove NT-specific tests for it. 1999-07-19 02:27:16 +00:00
regex Move some system includes into c.h, and remove duplicates. 1999-07-17 20:18:55 +00:00
rewrite Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
storage Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
tcop Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
tioga Move some system includes into c.h, and remove duplicates. 1999-07-17 20:18:55 +00:00
utils Mega-commit to make heap_open/heap_openr/heap_close take an 1999-09-18 19:08:25 +00:00
Makefile