mirror of
https://github.com/postgres/postgres.git
synced 2025-06-02 00:01:40 -04:00
Move funcid_get_rettype() to lsyscache.
This commit is contained in:
parent
b1baf1ff60
commit
c9b128fcdb
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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 */
|
Oid *rettype, /* return value */
|
||||||
bool *retset, /* return value */
|
bool *retset, /* return value */
|
||||||
Oid **true_typeids);
|
Oid **true_typeids);
|
||||||
static Oid funcid_get_rettype(Oid funcid);
|
|
||||||
static Oid **gen_cross_product(InhPaths *arginh, int nargs);
|
static Oid **gen_cross_product(InhPaths *arginh, int nargs);
|
||||||
static void make_arguments(ParseState *pstate,
|
static void make_arguments(ParseState *pstate,
|
||||||
int nargs,
|
int nargs,
|
||||||
@ -629,25 +628,6 @@ ParseFuncOrColumn(ParseState *pstate, char *funcname, List *fargs,
|
|||||||
return retval;
|
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()
|
/* func_get_candidates()
|
||||||
* get a list of all argument type vectors for which a function named
|
* get a list of all argument type vectors for which a function named
|
||||||
@ -1378,7 +1358,7 @@ ParseComplexProjection(ParseState *pstate,
|
|||||||
|
|
||||||
iter = (Iter *) first_arg;
|
iter = (Iter *) first_arg;
|
||||||
func = (Func *) ((Expr *) iter->iterexpr)->oper;
|
func = (Func *) ((Expr *) iter->iterexpr)->oper;
|
||||||
argtype = funcid_get_rettype(func->funcid);
|
argtype = get_func_rettype(func->funcid);
|
||||||
argrelid = typeidTypeRelid(argtype);
|
argrelid = typeidTypeRelid(argtype);
|
||||||
if (argrelid &&
|
if (argrelid &&
|
||||||
((attnum = get_attnum(argrelid, funcname))
|
((attnum = get_attnum(argrelid, funcname))
|
||||||
@ -1435,7 +1415,7 @@ ParseComplexProjection(ParseState *pstate,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
funcnode = (Func *) expr->oper;
|
funcnode = (Func *) expr->oper;
|
||||||
argtype = funcid_get_rettype(funcnode->funcid);
|
argtype = get_func_rettype(funcnode->funcid);
|
||||||
argrelid = typeidTypeRelid(argtype);
|
argrelid = typeidTypeRelid(argtype);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user