From c9b128fcdb2e5a29819dfa1910ff881a41c1498e Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Mon, 16 Aug 1999 02:08:59 +0000
Subject: [PATCH] Move funcid_get_rettype() to lsyscache.

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

diff --git a/src/backend/parser/parse_func.c b/src/backend/parser/parse_func.c
index 65f177885d4..344c87920bc 100644
--- a/src/backend/parser/parse_func.c
+++ b/src/backend/parser/parse_func.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.51 1999/08/05 02:33:54 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_func.c,v 1.52 1999/08/16 02:08:59 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -52,7 +52,6 @@ func_get_detail(char *funcname,
 				Oid *rettype,	/* return value */
 				bool *retset,	/* return value */
 				Oid **true_typeids);
-static Oid	funcid_get_rettype(Oid funcid);
 static Oid **gen_cross_product(InhPaths *arginh, int nargs);
 static void make_arguments(ParseState *pstate,
 			   int nargs,
@@ -629,25 +628,6 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
 	return retval;
 }
 
-static Oid
-funcid_get_rettype(Oid funcid)
-{
-	HeapTuple	func_tuple = NULL;
-	Oid			funcrettype = InvalidOid;
-
-	func_tuple = SearchSysCacheTuple(PROOID,
-									 ObjectIdGetDatum(funcid),
-									 0, 0, 0);
-
-	if (!HeapTupleIsValid(func_tuple))
-		elog(ERROR, "Function OID %u does not exist", funcid);
-
-	funcrettype = (Oid)
-		((Form_pg_proc) GETSTRUCT(func_tuple))->prorettype;
-
-	return funcrettype;
-}
-
 
 /* func_get_candidates()
  * get a list of all argument type vectors for which a function named
@@ -1378,7 +1358,7 @@ ParseComplexProjection(ParseState *pstate,
 
 				iter = (Iter *) first_arg;
 				func = (Func *) ((Expr *) iter->iterexpr)->oper;
-				argtype = funcid_get_rettype(func->funcid);
+				argtype = get_func_rettype(func->funcid);
 				argrelid = typeidTypeRelid(argtype);
 				if (argrelid &&
 					((attnum = get_attnum(argrelid, funcname))
@@ -1435,7 +1415,7 @@ ParseComplexProjection(ParseState *pstate,
 					break;
 
 				funcnode = (Func *) expr->oper;
-				argtype = funcid_get_rettype(funcnode->funcid);
+				argtype = get_func_rettype(funcnode->funcid);
 				argrelid = typeidTypeRelid(argtype);
 
 				/*
-- 
GitLab