Move funcid_get_rettype() to lsyscache.
This commit is contained in:
parent
b1baf1ff60
commit
c9b128fcdb
@ -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);
|
||||
|
||||
/*
|
||||
|
Loading…
x
Reference in New Issue
Block a user