mirror of
https://github.com/postgres/postgres.git
synced 2025-06-05 00:02:04 -04:00
Allow binary-coercible cases in ri_HashCompareOp; there are some such cases
that are not handled by find_coercion_pathway, notably composite->RECORD. Now that 8.4 supports composites as primary keys, it's worth dealing with this case.
This commit is contained in:
parent
7433359347
commit
2c61405206
@ -15,7 +15,7 @@
|
|||||||
*
|
*
|
||||||
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/backend/utils/adt/ri_triggers.c,v 1.113 2009/06/11 14:49:04 momjian Exp $
|
* $PostgreSQL: pgsql/src/backend/utils/adt/ri_triggers.c,v 1.113.2.1 2009/11/05 04:38:35 tgl Exp $
|
||||||
*
|
*
|
||||||
* ----------
|
* ----------
|
||||||
*/
|
*/
|
||||||
@ -3971,10 +3971,12 @@ ri_HashCompareOp(Oid eq_opr, Oid typeid)
|
|||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* The declared input type of the eq_opr might be a
|
* The declared input type of the eq_opr might be a
|
||||||
* polymorphic type such as ANYARRAY or ANYENUM. If so,
|
* polymorphic type such as ANYARRAY or ANYENUM, or other
|
||||||
* assume the coercion is valid; otherwise complain.
|
* special cases such as RECORD; find_coercion_pathway
|
||||||
|
* currently doesn't subsume these special cases.
|
||||||
*/
|
*/
|
||||||
if (!IsPolymorphicType(lefttype))
|
if (!IsPolymorphicType(lefttype) &&
|
||||||
|
!IsBinaryCoercible(typeid, lefttype))
|
||||||
elog(ERROR, "no conversion function from %s to %s",
|
elog(ERROR, "no conversion function from %s to %s",
|
||||||
format_type_be(typeid),
|
format_type_be(typeid),
|
||||||
format_type_be(lefttype));
|
format_type_be(lefttype));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user