mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
Wrap calls to SearchSysCache and related functions using macros.
The purpose of this change is to eliminate the need for every caller of SearchSysCache, SearchSysCacheCopy, SearchSysCacheExists, GetSysCacheOid, and SearchSysCacheList to know the maximum number of allowable keys for a syscache entry (currently 4). This will make it far easier to increase the maximum number of keys in a future release should we choose to do so, and it makes the code shorter, too. Design and review by Tom Lane.
This commit is contained in:
@ -6,7 +6,7 @@
|
||||
* Portions Copyright (c) 1996-2010, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/backend/executor/execAmi.c,v 1.107 2010/01/02 16:57:40 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/execAmi.c,v 1.108 2010/02/14 18:42:14 rhaas Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -484,17 +484,13 @@ IndexSupportsBackwardScan(Oid indexid)
|
||||
Form_pg_am amrec;
|
||||
|
||||
/* Fetch the pg_class tuple of the index relation */
|
||||
ht_idxrel = SearchSysCache(RELOID,
|
||||
ObjectIdGetDatum(indexid),
|
||||
0, 0, 0);
|
||||
ht_idxrel = SearchSysCache1(RELOID, ObjectIdGetDatum(indexid));
|
||||
if (!HeapTupleIsValid(ht_idxrel))
|
||||
elog(ERROR, "cache lookup failed for relation %u", indexid);
|
||||
idxrelrec = (Form_pg_class) GETSTRUCT(ht_idxrel);
|
||||
|
||||
/* Fetch the pg_am tuple of the index' access method */
|
||||
ht_am = SearchSysCache(AMOID,
|
||||
ObjectIdGetDatum(idxrelrec->relam),
|
||||
0, 0, 0);
|
||||
ht_am = SearchSysCache1(AMOID, ObjectIdGetDatum(idxrelrec->relam));
|
||||
if (!HeapTupleIsValid(ht_am))
|
||||
elog(ERROR, "cache lookup failed for access method %u",
|
||||
idxrelrec->relam);
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/functions.c,v 1.140 2010/01/02 16:57:41 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/functions.c,v 1.141 2010/02/14 18:42:14 rhaas Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -232,9 +232,7 @@ init_sql_fcache(FmgrInfo *finfo, bool lazyEvalOK)
|
||||
/*
|
||||
* get the procedure tuple corresponding to the given function Oid
|
||||
*/
|
||||
procedureTuple = SearchSysCache(PROCOID,
|
||||
ObjectIdGetDatum(foid),
|
||||
0, 0, 0);
|
||||
procedureTuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(foid));
|
||||
if (!HeapTupleIsValid(procedureTuple))
|
||||
elog(ERROR, "cache lookup failed for function %u", foid);
|
||||
procedureStruct = (Form_pg_proc) GETSTRUCT(procedureTuple);
|
||||
@ -885,9 +883,7 @@ sql_exec_error_callback(void *arg)
|
||||
int syntaxerrposition;
|
||||
|
||||
/* Need access to function's pg_proc tuple */
|
||||
func_tuple = SearchSysCache(PROCOID,
|
||||
ObjectIdGetDatum(flinfo->fn_oid),
|
||||
0, 0, 0);
|
||||
func_tuple = SearchSysCache1(PROCOID, ObjectIdGetDatum(flinfo->fn_oid));
|
||||
if (!HeapTupleIsValid(func_tuple))
|
||||
return; /* shouldn't happen */
|
||||
functup = (Form_pg_proc) GETSTRUCT(func_tuple);
|
||||
|
@ -71,7 +71,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeAgg.c,v 1.173 2010/02/12 17:33:19 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeAgg.c,v 1.174 2010/02/14 18:42:14 rhaas Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -1597,9 +1597,8 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
|
||||
}
|
||||
peraggstate->numArguments = numArguments;
|
||||
|
||||
aggTuple = SearchSysCache(AGGFNOID,
|
||||
ObjectIdGetDatum(aggref->aggfnoid),
|
||||
0, 0, 0);
|
||||
aggTuple = SearchSysCache1(AGGFNOID,
|
||||
ObjectIdGetDatum(aggref->aggfnoid));
|
||||
if (!HeapTupleIsValid(aggTuple))
|
||||
elog(ERROR, "cache lookup failed for aggregate %u",
|
||||
aggref->aggfnoid);
|
||||
@ -1620,9 +1619,8 @@ ExecInitAgg(Agg *node, EState *estate, int eflags)
|
||||
HeapTuple procTuple;
|
||||
Oid aggOwner;
|
||||
|
||||
procTuple = SearchSysCache(PROCOID,
|
||||
ObjectIdGetDatum(aggref->aggfnoid),
|
||||
0, 0, 0);
|
||||
procTuple = SearchSysCache1(PROCOID,
|
||||
ObjectIdGetDatum(aggref->aggfnoid));
|
||||
if (!HeapTupleIsValid(procTuple))
|
||||
elog(ERROR, "cache lookup failed for function %u",
|
||||
aggref->aggfnoid);
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeHash.c,v 1.127 2010/02/01 15:43:36 rhaas Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeHash.c,v 1.128 2010/02/14 18:42:14 rhaas Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -999,11 +999,10 @@ ExecHashBuildSkewHash(HashJoinTable hashtable, Hash *node, int mcvsToUse)
|
||||
/*
|
||||
* Try to find the MCV statistics for the outer relation's join key.
|
||||
*/
|
||||
statsTuple = SearchSysCache(STATRELATTINH,
|
||||
ObjectIdGetDatum(node->skewTable),
|
||||
Int16GetDatum(node->skewColumn),
|
||||
BoolGetDatum(node->skewInherit),
|
||||
0);
|
||||
statsTuple = SearchSysCache3(STATRELATTINH,
|
||||
ObjectIdGetDatum(node->skewTable),
|
||||
Int16GetDatum(node->skewColumn),
|
||||
BoolGetDatum(node->skewInherit));
|
||||
if (!HeapTupleIsValid(statsTuple))
|
||||
return;
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeWindowAgg.c,v 1.10 2010/02/12 17:33:19 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/nodeWindowAgg.c,v 1.11 2010/02/14 18:42:14 rhaas Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -1726,9 +1726,7 @@ initialize_peragg(WindowAggState *winstate, WindowFunc *wfunc,
|
||||
inputTypes[i++] = exprType((Node *) lfirst(lc));
|
||||
}
|
||||
|
||||
aggTuple = SearchSysCache(AGGFNOID,
|
||||
ObjectIdGetDatum(wfunc->winfnoid),
|
||||
0, 0, 0);
|
||||
aggTuple = SearchSysCache1(AGGFNOID, ObjectIdGetDatum(wfunc->winfnoid));
|
||||
if (!HeapTupleIsValid(aggTuple))
|
||||
elog(ERROR, "cache lookup failed for aggregate %u",
|
||||
wfunc->winfnoid);
|
||||
@ -1747,9 +1745,8 @@ initialize_peragg(WindowAggState *winstate, WindowFunc *wfunc,
|
||||
HeapTuple procTuple;
|
||||
Oid aggOwner;
|
||||
|
||||
procTuple = SearchSysCache(PROCOID,
|
||||
ObjectIdGetDatum(wfunc->winfnoid),
|
||||
0, 0, 0);
|
||||
procTuple = SearchSysCache1(PROCOID,
|
||||
ObjectIdGetDatum(wfunc->winfnoid));
|
||||
if (!HeapTupleIsValid(procTuple))
|
||||
elog(ERROR, "cache lookup failed for function %u",
|
||||
wfunc->winfnoid);
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.213 2010/01/02 16:57:45 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/executor/spi.c,v 1.214 2010/02/14 18:42:14 rhaas Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -911,9 +911,7 @@ SPI_gettype(TupleDesc tupdesc, int fnumber)
|
||||
else
|
||||
typoid = (SystemAttributeDefinition(fnumber, true))->atttypid;
|
||||
|
||||
typeTuple = SearchSysCache(TYPEOID,
|
||||
ObjectIdGetDatum(typoid),
|
||||
0, 0, 0);
|
||||
typeTuple = SearchSysCache1(TYPEOID, ObjectIdGetDatum(typoid));
|
||||
|
||||
if (!HeapTupleIsValid(typeTuple))
|
||||
{
|
||||
|
Reference in New Issue
Block a user