From: Heikki Linnakangas Date: Thu, 4 Mar 2010 09:39:53 +0000 (+0000) Subject: Fix IsBinaryCoercible to not confuse a cast using in/out functions X-Git-Tag: REL9_0_ALPHA5~134 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3bdede3974569fa18b0d0684c07a6305df2fca06;p=postgresql Fix IsBinaryCoercible to not confuse a cast using in/out functions with binary compatibility. Backpatch to 8.4 where INOUT casts were introduced. --- diff --git a/src/backend/parser/parse_coerce.c b/src/backend/parser/parse_coerce.c index 2000dfb93a..45d2c35fa6 100644 --- a/src/backend/parser/parse_coerce.c +++ b/src/backend/parser/parse_coerce.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/parser/parse_coerce.c,v 2.181 2010/02/26 02:00:52 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/parser/parse_coerce.c,v 2.182 2010/03/04 09:39:53 heikki Exp $ * *------------------------------------------------------------------------- */ @@ -1792,7 +1792,7 @@ IsBinaryCoercible(Oid srctype, Oid targettype) return false; /* no cast */ castForm = (Form_pg_cast) GETSTRUCT(tuple); - result = (castForm->castfunc == InvalidOid && + result = (castForm->castmethod == COERCION_METHOD_BINARY && castForm->castcontext == COERCION_CODE_IMPLICIT); ReleaseSysCache(tuple);