postgresql/src/include/utils
Tom Lane 9513918c6c Fix up flushing of composite-type typcache entries to be driven directly by
SI invalidation events, rather than indirectly through the relcache.

In the previous coding, we had to flush a composite-type typcache entry
whenever we discarded the corresponding relcache entry.  This caused problems
at least when testing with RELCACHE_FORCE_RELEASE, as shown in recent report
from Jeff Davis, and might result in real-world problems given the kind of
unexpected relcache flush that that test mechanism is intended to model.

The new coding decouples relcache and typcache management, which is a good
thing anyway from a structural perspective.  The cost is that we have to
search the typcache linearly to find entries that need to be flushed.  There
are a couple of ways we could avoid that, but at the moment it's not clear
it's worth any extra trouble, because the typcache contains very few entries
in typical operation.

Back-patch to 8.2, the same as some other recent fixes in this general area.
The patch could be carried back to 8.0 with some additional work, but given
that it's only hypothetical whether we're fixing any problem observable in
the field, it doesn't seem worth the work now.
2010-09-02 03:16:46 +00:00
..
acl.h Standardize get_whatever_oid functions for object types with 2010-08-05 14:45:09 +00:00
array.h Add three-parameter forms of array_to_string and string_to_array, to allow 2010-08-10 21:51:00 +00:00
ascii.h Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
attoptcache.h
builtins.h Add string functions: concat(), concat_ws(), left(), right(), and reverse(). 2010-08-24 06:30:44 +00:00
bytea.h
cash.h Add support for dividing money by money (yielding a float8 result) and for 2010-07-16 02:15:56 +00:00
catcache.h pgindent run for 9.0 2010-02-26 02:01:40 +00:00
combocid.h
date.h
datetime.h pgindent run for 9.0 2010-02-26 02:01:40 +00:00
datum.h
dynahash.h
dynamic_loader.h
elog.h
errcodes.h Add libpq warning message if the .pgpass-retrieved password fails. 2010-03-13 14:55:57 +00:00
fmgrtab.h
formatting.h Remove extra newlines at end and beginning of files, add missing newlines 2010-08-19 05:57:36 +00:00
geo_decls.h Replace the naive HYPOT() macro with a standards-conformant hypotenuse 2010-08-03 21:21:03 +00:00
guc_tables.h Add restart_after_crash GUC. 2010-07-20 00:47:53 +00:00
guc.h Prevent ALTER USER f RESET ALL from removing the settings that were put there 2010-03-25 14:44:34 +00:00
help_config.h
hsearch.h
inet.h
int8.h
inval.h Include the backend ID in the relpath of temporary relations. 2010-08-13 20:10:54 +00:00
logtape.h
lsyscache.h Standardize get_whatever_oid functions for object types with 2010-08-05 14:45:09 +00:00
memutils.h
nabstime.h Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
numeric.h Fix declared argument name for numeric_maximum_size. 2010-08-04 17:35:59 +00:00
palloc.h
pg_crc.h pgindent run for 9.0 2010-02-26 02:01:40 +00:00
pg_locale.h Update copyright for the year 2010. 2010-01-02 16:58:17 +00:00
pg_lzcompress.h
pg_rusage.h
plancache.h pgindent run for 9.0 2010-02-26 02:01:40 +00:00
portal.h The previous fix in CVS HEAD and 8.4 for handling the case where a cursor 2010-07-05 09:27:18 +00:00
ps_status.h
rbtree.h Rewrite the rbtree routines so that an RBNode is the first field of the 2010-08-01 02:12:42 +00:00
rel.h Include the backend ID in the relpath of temporary relations. 2010-08-13 20:10:54 +00:00
relcache.h pgindent run for 9.0 2010-02-26 02:01:40 +00:00
relmapper.h pgindent run for 9.0 2010-02-26 02:01:40 +00:00
resowner.h
selfuncs.h
snapmgr.h
snapshot.h
spccache.h pgindent run for 9.0 2010-02-26 02:01:40 +00:00
syscache.h
timestamp.h
tqual.h
tuplesort.h pgindent run for 9.0 2010-02-26 02:01:40 +00:00
tuplestore.h
typcache.h Fix up flushing of composite-type typcache entries to be driven directly by 2010-09-02 03:16:46 +00:00
tzparser.h
uuid.h
varbit.h
xml.h Add xml_is_well_formed, xml_is_well_formed_document, xml_is_well_formed_content 2010-08-13 18:36:26 +00:00