postgresql/src/include/utils
Neil Conway ade493e02d Add a hash function for "numeric". Mark the equality operator for
numerics as "oprcanhash", and make the corresponding system catalog
updates. As a result, hash indexes, hashed aggregation, and hash
joins can now be used with the numeric type. Bump the catversion.

The only tricky aspect to doing this is writing a correct hash
function: it's possible for two Numerics to be equal according to
their equality operator, but have different in-memory bit patterns.
To cope with this, the hash function doesn't consider the Numeric's
"scale" or "sign", and explictly skips any leading or trailing
zeros in the Numeric's digit buffer (the current implementation
should suppress any such zeros, but it seems unwise to rely upon
this). See discussion on pgsql-patches for more details.
2007-05-08 18:56:48 +00:00
..
acl.h Allow non-superuser database owners to create procedural languages. 2007-03-26 16:58:41 +00:00
array.h Fix array coercion expressions to ensure that the correct volatility is 2007-03-27 23:21:12 +00:00
ascii.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
builtins.h Add a hash function for "numeric". Mark the equality operator for 2007-05-08 18:56:48 +00:00
cash.h Widen the money type to 64 bits. 2007-01-03 01:19:51 +00:00
catcache.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
combocid.h Combine cmin and cmax fields of HeapTupleHeaders into a single field, by 2007-02-09 03:35:35 +00:00
date.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
datetime.h Add "isodow" option to EXTRACT() and date_part() where Sunday = 7. 2007-02-19 17:41:39 +00:00
datum.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
dynahash.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
dynamic_loader.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
elog.h A few fixups in error handling: mark pg_re_throw() as noreturn for gcc, 2007-05-04 02:01:02 +00:00
errcodes.h Implement XMLSERIALIZE for real. Analogously, make the xml to text cast 2007-02-03 14:06:56 +00:00
flatfiles.h Standard pgindent run for 8.1. 2005-10-15 02:49:52 +00:00
fmgrtab.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
formatting.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
geo_decls.h Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len). 2007-02-27 23:48:10 +00:00
guc.h RESET SESSION, plus related new DDL commands. Patch from Marko Kreen, 2007-04-12 06:53:49 +00:00
guc_tables.h Make configuration parameters fall back to their default values when they 2007-04-21 20:02:41 +00:00
help_config.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
hsearch.h Fix dynahash.c to suppress hash bucket splits while a hash_seq_search() scan 2007-04-26 23:24:46 +00:00
inet.h Support varlena fields with single-byte headers and unaligned storage. 2007-04-06 04:21:44 +00:00
int8.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
inval.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
logtape.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
lsyscache.h Support enum data types. Along the way, use macros for the values of 2007-04-02 03:49:42 +00:00
memutils.h First phase of plan-invalidation project: create a plan cache management 2007-03-13 00:33:44 +00:00
nabstime.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
numeric.h Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len). 2007-02-27 23:48:10 +00:00
palloc.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
pg_crc.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
pg_locale.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
pg_lzcompress.h Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len). 2007-02-27 23:48:10 +00:00
pg_rusage.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
plancache.h Make plancache store cursor options so it can pass them to planner during 2007-04-16 18:21:07 +00:00
portal.h RESET SESSION, plus related new DDL commands. Patch from Marko Kreen, 2007-04-12 06:53:49 +00:00
ps_status.h Add GUC update_process_title to control whether 'ps' display is updated 2006-06-27 22:16:44 +00:00
rel.h Teach CLUSTER to skip writing WAL if not needed (ie, not using archiving) 2007-03-29 00:15:39 +00:00
relcache.h Teach CLUSTER to skip writing WAL if not needed (ie, not using archiving) 2007-03-29 00:15:39 +00:00
resowner.h First phase of plan-invalidation project: create a plan cache management 2007-03-13 00:33:44 +00:00
selfuncs.h Put back planner's ability to cache the results of mergejoinscansel(), 2007-01-22 20:00:40 +00:00
syscache.h Support enum data types. Along the way, use macros for the values of 2007-04-02 03:49:42 +00:00
timestamp.h Change the timestamps recorded in transaction commit/abort xlog records 2007-04-30 21:01:53 +00:00
tqual.h Clean up the representation of special snapshots by including a "method 2007-03-25 19:45:14 +00:00
tuplesort.h Add a line to the EXPLAIN ANALYZE output for a Sort node, showing the 2007-05-04 21:29:53 +00:00
tuplestore.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
typcache.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
tzparser.h Update CVS HEAD for 2007 copyright. Back branches are typically not 2007-01-05 22:20:05 +00:00
uuid.h Rename the uuid_t type to pg_uuid_t, to avoid a conflict with any 2007-01-28 20:25:38 +00:00
varbit.h Replace direct assignments to VARATT_SIZEP(x) with SET_VARSIZE(x, len). 2007-02-27 23:48:10 +00:00
xml.h Mapping schemas and databases to XML and XML Schema. 2007-04-01 09:00:26 +00:00