Hash support for row types
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 19 Nov 2020 08:24:37 +0000 (09:24 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 19 Nov 2020 08:32:47 +0000 (09:32 +0100)
commit01e658fa74cb7e3292448f6663b549135958003b
treed87a206912e085d7bcdadc424b571055055e58e2
parent7888b0999488511e4266f2134053fa3a6505a155
Hash support for row types

Add hash functions for the record type as well as a hash operator
family and operator class for the record type.  This enables all the
hash functionality for the record type such as hash-based plans for
UNION/INTERSECT/EXCEPT DISTINCT, recursive queries using UNION
DISTINCT, hash joins, and hash partitioning.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://www.postgresql.org/message-id/flat/38eccd35-4e2d-6767-1b3c-dada1eac3124%402ndquadrant.com
19 files changed:
doc/src/sgml/queries.sgml
src/backend/utils/adt/rowtypes.c
src/backend/utils/cache/lsyscache.c
src/backend/utils/cache/typcache.c
src/include/catalog/catversion.h
src/include/catalog/pg_amop.dat
src/include/catalog/pg_amproc.dat
src/include/catalog/pg_opclass.dat
src/include/catalog/pg_operator.dat
src/include/catalog/pg_opfamily.dat
src/include/catalog/pg_proc.dat
src/test/regress/expected/hash_func.out
src/test/regress/expected/join.out
src/test/regress/expected/union.out
src/test/regress/expected/with.out
src/test/regress/sql/hash_func.sql
src/test/regress/sql/join.sql
src/test/regress/sql/union.sql
src/test/regress/sql/with.sql