Thread: pgsql: Fix multiple problems with satisfies_hash_partition.

pgsql: Fix multiple problems with satisfies_hash_partition.

From
Robert Haas
Date:
Fix multiple problems with satisfies_hash_partition.

Fix the function header comment to describe the actual behavior.
Check that table OID, modulus, and remainder arguments are not NULL
before accessing them.  Check that the modulus and remainder are
sensible.  If the table OID doesn't exist, return NULL instead of
emitting an internal error, similar to what we do elsewhere.  Check
that the actual argument types match, or at least are binary coercible
to, the expected argument types.  Correctly handle invocation of this
function using the VARIADIC syntax.  Add regression tests.

Robert Haas and Amul Sul, per a report by Andreas Seltenreich and
subsequent followup investigation.

Discussion: http://postgr.es/m/871sl4sdrv.fsf@ansel.ydns.eu

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/f3b0897a1213f46b4d3a99a7f8ef3a4b32e03572

Modified Files
--------------
src/backend/catalog/partition.c         | 202 +++++++++++++++++++++++++++-----
src/test/regress/expected/hash_part.out | 113 ++++++++++++++++++
src/test/regress/parallel_schedule      |   2 +-
src/test/regress/serial_schedule        |   1 +
src/test/regress/sql/hash_part.sql      |  90 ++++++++++++++
5 files changed, 377 insertions(+), 31 deletions(-)