postgresql/src/backend/commands
Tom Lane 75d091a0d7 Fix brain fade in DefineIndex(): it was continuing to access the table's
relcache entry after having heap_close'd it.  This could lead to misbehavior
if a relcache flush wiped out the cache entry meanwhile.  In 8.2 there is a
very real risk of CREATE INDEX CONCURRENTLY using the wrong relid for locking
and waiting purposes.  I think the bug is only cosmetic in 8.0 and 8.1,
because their transgression is limited to using RelationGetRelationName(rel)
in an ereport message immediately after heap_close, and there's no way (except
with special debugging options) for a cache flush to occur in that interval.
Not quite sure that it's cosmetic in 7.4, but seems best to patch anyway.

Found by trying to run the regression tests with CLOBBER_CACHE_ALWAYS enabled.
Maybe we should try to do that on a regular basis --- it's awfully slow,
but perhaps some fast buildfarm machine could do it once in awhile.
2007-08-25 19:08:19 +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 Minor code cleanup: calling FreeFile() before ereport(ERROR) is not 2007-06-20 02:02:49 +00:00
dbcommands.c Support an optional asynchronous commit mode, in which we don't flush WAL 2007-08-01 22:45:09 +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 enum data types. Along the way, use macros for the values of 2007-04-02 03:49:42 +00:00
indexcmds.c Fix brain fade in DefineIndex(): it was continuing to access the table's 2007-08-25 19:08:19 +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 Allow non-superuser database owners to create procedural languages. 2007-03-26 16:58:41 +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 Wording cleanup for error messages. Also change can't -> cannot. 2007-02-01 19:10:30 +00:00
tablecmds.c Tsearch2 functionality migrates to core. The bulk of this work is by 2007-08-21 01:11:32 +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 CREATE DOMAIN ... DEFAULT NULL failed because gram.y special-cases DEFAULT 2007-06-20 18:15:49 +00:00
user.c Wording cleanup for error messages. Also change can't -> cannot. 2007-02-01 19:10:30 +00:00
vacuum.c Fix two bugs induced in VACUUM FULL by async-commit patch. 2007-08-13 19:08:26 +00:00
vacuumlazy.c Make large sequential scans and VACUUMs work in a limited-size "ring" of 2007-05-30 20:12:03 +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 Separate parse-analysis for utility commands out of parser/analyze.c 2007-06-23 22:12:52 +00:00