Add support for cross-type hashing in hash index searches and hash joins.
Tom Lane <tgl@sss.pgh.pa.us>
Add support for cross-type hashing in hash index searches and hash joins. Hashing for aggregation purposes still needs work, so it's not time to mark any cross-type operators as hashable for general use, but these cases work if the operators are so marked by hand in the system catalogs.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/access/hash/hashsearch.c | modified | +23 −3 |
| src/backend/access/hash/hashutil.c | modified | +30 −1 |
| src/backend/executor/execGrouping.c | modified | +8 −5 |
| src/backend/executor/nodeHash.c | modified | +19 −9 |
| src/backend/executor/nodeHashjoin.c | modified | +2 −1 |
| src/backend/executor/nodeSubplan.c | modified | +9 −6 |
| src/backend/optimizer/plan/createplan.c | modified | +6 −7 |
| src/backend/utils/cache/lsyscache.c | modified | +129 −39 |
| src/include/access/hash.h | modified | +2 −1 |
| src/include/executor/hashjoin.h | modified | +5 −6 |
| src/include/executor/nodeHash.h | modified | +2 −1 |
| src/include/utils/lsyscache.h | modified | +5 −3 |