You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tom Lane
4a14f13a0a
Improve hash_create's API for selecting simple-binary-key hash functions.
...
Previously, if you wanted anything besides C-string hash keys, you had to
specify a custom hashing function to hash_create(). Nearly all such
callers were specifying tag_hash or oid_hash; which is tedious, and rather
error-prone, since a caller could easily miss the opportunity to optimize
by using hash_uint32 when appropriate. Replace this with a design whereby
callers using simple binary-data keys just specify HASH_BLOBS and don't
need to mess with specific support functions. hash_create() itself will
take care of optimizing when the key size is four bytes.
This nets out saving a few hundred bytes of code space, and offers
a measurable performance improvement in tidbitmap.c (which was not
exploiting the opportunity to use hash_uint32 for its 4-byte keys).
There might be some wins elsewhere too, I didn't analyze closely.
In future we could look into offering a similar optimized hashing function
for 8-byte keys. Under this design that could be done in a centralized
and machine-independent fashion, whereas getting it right for keys of
platform-dependent sizes would've been notationally painful before.
For the moment, the old way still works fine, so as not to break source
code compatibility for loadable modules. Eventually we might want to
remove tag_hash and friends from the exported API altogether, since there's
no real need for them to be explicitly referenced from outside dynahash.c.
Teodor Sigaev and Tom Lane
11 years ago
..
.gitignore
Avoid maintaining three separate copies of the error codes list.
15 years ago
acl.h
Row-Level Security Policies (RLS)
11 years ago
array.h
Support arrays as input to array_agg() and ARRAY(SELECT ...).
11 years ago
ascii.h
Update copyright for 2014
12 years ago
attoptcache.h
Update copyright for 2014
12 years ago
builtins.h
Event Trigger for table_rewrite
11 years ago
bytea.h
Update copyright for 2014
12 years ago
cash.h
Add casts from int4 and int8 to numeric.
15 years ago
catcache.h
pgindent run for 9.4
12 years ago
combocid.h
Update copyright for 2014
12 years ago
date.h
Update copyright for 2014
12 years ago
datetime.h
C comment: mention 1500-02-29 as an invalid date
11 years ago
datum.h
Update copyright for 2014
12 years ago
dynahash.h
Update copyright for 2014
12 years ago
dynamic_loader.h
Update copyright for 2014
12 years ago
elog.h
Support frontend-backend protocol communication using a shm_mq.
11 years ago
evtcache.h
Event Trigger for table_rewrite
11 years ago
fmgrtab.h
Update copyright for 2014
12 years ago
formatting.h
Update copyright for 2014
12 years ago
geo_decls.h
Add point <-> polygon distance operator.
11 years ago
guc.h
Move PG_AUTOCONF_FILENAME definition
11 years ago
guc_tables.h
Update copyright for 2014
12 years ago
help_config.h
Update copyright for 2014
12 years ago
hsearch.h
Improve hash_create's API for selecting simple-binary-key hash functions.
11 years ago
inet.h
pgindent run for 9.4
12 years ago
int8.h
Provide moving-aggregate support for a bunch of numerical aggregates.
12 years ago
inval.h
Avoid setup work for invalidation messages at start-of-(sub)xact.
11 years ago
json.h
Add json_strip_nulls and jsonb_strip_nulls functions.
11 years ago
jsonapi.h
Fix hstore_to_json_loose's detection of valid JSON number values.
11 years ago
jsonb.h
Add several generator functions for jsonb that exist for json.
11 years ago
lockwaitpolicy.h
Implement SKIP LOCKED for row-level locks
11 years ago
logtape.h
Update copyright for 2014
12 years ago
lsyscache.h
Support arrays as input to array_agg() and ARRAY(SELECT ...).
11 years ago
memdebug.h
Update copyright for 2014
12 years ago
memutils.h
Fix and enhance the assertion of no palloc's in a critical section.
12 years ago
nabstime.h
Update copyright for 2014
12 years ago
numeric.h
Introduce jsonb, a structured format for storing json.
12 years ago
palloc.h
pgindent run for 9.4
12 years ago
pg_crc.h
Switch to CRC-32C in WAL and other places.
11 years ago
pg_crc_tables.h
Switch to CRC-32C in WAL and other places.
11 years ago
pg_locale.h
Update copyright for 2014
12 years ago
pg_lsn.h
Add btree and hash opclasses for pg_lsn.
12 years ago
pg_lzcompress.h
Remove cvs keywords from all files.
15 years ago
pg_rusage.h
Update copyright for 2014
12 years ago
plancache.h
Rename pg_rowsecurity -> pg_policy and other fixes
11 years ago
portal.h
pgindent run for 9.4
12 years ago
ps_status.h
Remove cvs keywords from all files.
15 years ago
rangetypes.h
Update copyright for 2014
12 years ago
rbtree.h
Update copyright for 2014
12 years ago
rel.h
Rename pg_rowsecurity -> pg_policy and other fixes
11 years ago
relcache.h
Fix relpersistence setting in reindex_index
11 years ago
relfilenodemap.h
pgindent run for 9.4
12 years ago
relmapper.h
Revamp the WAL record format.
11 years ago
reltrigger.h
Update copyright for 2014
12 years ago
resowner.h
pgindent run for 9.4
12 years ago
resowner_private.h
pgindent run for 9.4
12 years ago
ruleutils.h
Split builtins.h to a new header ruleutils.h
11 years ago
selfuncs.h
BRIN: Block Range Indexes
11 years ago
snapmgr.h
Introduce logical decoding.
12 years ago
snapshot.h
Implement SKIP LOCKED for row-level locks
11 years ago
sortsupport.h
Use the sortsupport infrastructure in more cases.
11 years ago
spccache.h
Update copyright for 2014
12 years ago
syscache.h
Update copyright for 2014
12 years ago
timeout.h
Update copyright for 2014
12 years ago
timestamp.h
Provide moving-aggregate support for a bunch of numerical aggregates.
12 years ago
tqual.h
pgindent run for 9.4
12 years ago
tuplesort.h
Avoid copying index tuples when building an index.
12 years ago
tuplestore.h
pgindent run for 9.4
12 years ago
typcache.h
pgindent run for 9.4
12 years ago
tzparser.h
Support timezone abbreviations that sometimes change.
11 years ago
uuid.h
Update copyright for 2014
12 years ago
varbit.h
Predict integer overflow to avoid buffer overruns.
12 years ago
xml.h
Update copyright for 2014
12 years ago