postgresql/src/include/utils
Tom Lane 37ee4b75db Restructure function-internal caching in the range type code.
Move the responsibility for caching specialized information about range
types into the type cache, so that the catalog lookups only have to occur
once per session.  Rearrange APIs a bit so that fn_extra caching is
actually effective in the GiST support code.  (Use of OidFunctionCallN is
bad enough for performance in itself, but it also prevents the function
from exploiting fn_extra caching.)

The range I/O functions are still not very bright about caching repeated
lookups, but that seems like material for a separate patch.

Also, avoid unnecessary use of memcpy to fetch/store the range type OID and
flags, and don't use the full range_deserialize machinery when all we need
to see is the flags value.

Also fix API error in range_gist_penalty --- it was failing to set *penalty
for any case involving an empty range.
2011-11-15 13:05:45 -05:00
..
.gitignore Avoid maintaining three separate copies of the error codes list. 2011-02-03 22:32:49 -05:00
acl.h Remove partial and undocumented GRANT .. FOREIGN TABLE support. 2011-04-25 16:39:18 -04:00
array.h Add FOREACH IN ARRAY looping to plpgsql. 2011-02-16 01:53:03 -05:00
ascii.h Code review for pgstat_get_crashed_backend_activity patch. 2011-10-21 16:36:04 -04:00
attoptcache.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
builtins.h Add notion of a "transform function" that can simplify function calls. 2011-06-21 22:21:24 -04:00
bytea.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
cash.h Add casts from int4 and int8 to numeric. 2011-04-05 09:35:43 -04:00
catcache.h Revise sinval code to remove no-longer-used tuple TID from inval messages. 2011-08-16 19:27:46 -04:00
combocid.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
date.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
datetime.h Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. 2011-09-09 13:23:41 -04:00
datum.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
dynahash.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
dynamic_loader.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
elog.h Add an errdetail_internal() ereport auxiliary routine. 2011-07-16 14:22:15 -04:00
fmgrtab.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
formatting.h Per-column collation support 2011-02-08 23:04:18 +02:00
geo_decls.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
guc.h Improve and simplify CREATE EXTENSION's management of GUC variables. 2011-10-05 20:44:16 -04:00
guc_tables.h Remember the source GucContext for each GUC parameter. 2011-10-04 16:13:50 -04:00
help_config.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
hsearch.h Pgindent run before 9.1 beta2. 2011-06-09 14:32:50 -04:00
inet.h Make DatumGetInetP() unpack inet datums with a 1-byte header, and add 2011-11-08 22:39:43 +02:00
int8.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
inval.h Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
logtape.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
lsyscache.h Support range data types. 2011-11-03 13:42:15 +02:00
memutils.h Redesign the plancache mechanism for more flexibility and efficiency. 2011-09-16 00:43:52 -04:00
nabstime.h Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. 2011-09-09 13:23:41 -04:00
numeric.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
palloc.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
pg_crc.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
pg_locale.h Fix char2wchar/wchar2char to support collations properly. 2011-04-23 12:35:41 -04:00
pg_lzcompress.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
pg_rusage.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
plancache.h Redesign the plancache mechanism for more flexibility and efficiency. 2011-09-16 00:43:52 -04:00
portal.h Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. 2011-09-09 13:23:41 -04:00
ps_status.h Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
rangetypes.h Restructure function-internal caching in the range type code. 2011-11-15 13:05:45 -05:00
rbtree.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
rel.h Move Trigger and TriggerDesc structs out of rel.h into a new reltrigger.h 2011-07-04 14:35:58 -04:00
relcache.h Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
relmapper.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
reltrigger.h Move Trigger and TriggerDesc structs out of rel.h into a new reltrigger.h 2011-07-04 14:35:58 -04:00
resowner.h Remove unnecessary #include references, per pgrminclude script. 2011-09-01 10:04:27 -04:00
selfuncs.h Change get_variable_numdistinct's API to flag default estimates explicitly. 2011-09-04 15:41:49 -04:00
snapmgr.h Support synchronization of snapshots through an export/import procedure. 2011-10-22 18:23:30 -04:00
snapshot.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
spccache.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
syscache.h Support range data types. 2011-11-03 13:42:15 +02:00
timestamp.h Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h. 2011-09-09 13:23:41 -04:00
tqual.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
tuplesort.h Pass collations to functions in FunctionCallInfoData, not FmgrInfo. 2011-04-12 19:19:24 -04:00
tuplestore.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
typcache.h Restructure function-internal caching in the range type code. 2011-11-15 13:05:45 -05:00
tzparser.h Revise the API for GUC variable assign hooks. 2011-04-07 00:12:02 -04:00
uuid.h Stamp copyrights for year 2011. 2011-01-01 13:18:15 -05:00
varbit.h pgindent run before PG 9.1 beta 1. 2011-04-10 11:42:00 -04:00
xml.h Rewrite libxml error handling to be more robust. 2011-07-20 13:03:49 -04:00