From 990eb8552e69a492840d46b58ceb630a8a295e54 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Wed, 12 Dec 2001 03:28:49 +0000
Subject: [PATCH] Don't accept names of complex types (ie, relation types) as
 being requests for implicit trivial coercions.  Prevents sillinesses like
 this one: regression=# select x.int8_tbl.q1 from int8_tbl x; ERROR: 
 fmgr_info: function 270997776: cache lookup failed

---
 src/backend/parser/parse_func.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index 7a594df35d4..77391851338 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.114 2001/11/12 00:00:55 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.115 2001/12/12 03:28:49 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1165,7 +1165,8 @@ func_get_detail(char *funcname,
 			targetType = GetSysCacheOid(TYPENAME,
 										PointerGetDatum(funcname),
 										0, 0, 0);
-			if (OidIsValid(targetType))
+			if (OidIsValid(targetType) &&
+				!ISCOMPLEX(targetType))
 			{
 				Oid			sourceType = argtypes[0];
 				Node	   *arg1 = lfirst(fargs);
-- 
GitLab