diff options
Diffstat (limited to 'src/backend/utils/cache/lsyscache.c')
-rw-r--r-- | src/backend/utils/cache/lsyscache.c | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/src/backend/utils/cache/lsyscache.c b/src/backend/utils/cache/lsyscache.c index d2041a507d0..c449ad6e742 100644 --- a/src/backend/utils/cache/lsyscache.c +++ b/src/backend/utils/cache/lsyscache.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.145 2007/01/21 00:57:15 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/cache/lsyscache.c,v 1.146 2007/01/22 01:35:21 tgl Exp $ * * NOTES * Eventually, the index information should go through here, too. @@ -1295,6 +1295,48 @@ func_volatile(Oid funcid) return result; } +/* + * get_func_cost + * Given procedure id, return the function's procost field. + */ +float4 +get_func_cost(Oid funcid) +{ + HeapTuple tp; + float4 result; + + tp = SearchSysCache(PROCOID, + ObjectIdGetDatum(funcid), + 0, 0, 0); + if (!HeapTupleIsValid(tp)) + elog(ERROR, "cache lookup failed for function %u", funcid); + + result = ((Form_pg_proc) GETSTRUCT(tp))->procost; + ReleaseSysCache(tp); + return result; +} + +/* + * get_func_rows + * Given procedure id, return the function's prorows field. + */ +float4 +get_func_rows(Oid funcid) +{ + HeapTuple tp; + float4 result; + + tp = SearchSysCache(PROCOID, + ObjectIdGetDatum(funcid), + 0, 0, 0); + if (!HeapTupleIsValid(tp)) + elog(ERROR, "cache lookup failed for function %u", funcid); + + result = ((Form_pg_proc) GETSTRUCT(tp))->prorows; + ReleaseSysCache(tp); + return result; +} + /* ---------- RELATION CACHE ---------- */ /* |