diff options
| author | Tom Lane | 2001-10-06 23:21:45 +0000 |
|---|---|---|
| committer | Tom Lane | 2001-10-06 23:21:45 +0000 |
| commit | 85801a4dbdee22f230637311681b8b03a72979db (patch) | |
| tree | 28054ba90fda332be0d5254e5bdaba5a2a51f1f2 /src/include/access | |
| parent | a965750abf2504e266e5071dc90365be9485395a (diff) | |
Rearrange fmgr.c and relcache so that it's possible to keep FmgrInfo
lookup info in the relcache for index access method support functions.
This makes a huge difference for dynamically loaded support functions,
and should save a few cycles even for built-in ones. Also tweak dfmgr.c
so that load_external_function is called only once, not twice, when
doing fmgr_info for a dynamically loaded function. All per performance
gripe from Teodor Sigaev, 5-Oct-01.
Diffstat (limited to 'src/include/access')
| -rw-r--r-- | src/include/access/genam.h | 4 | ||||
| -rw-r--r-- | src/include/access/skey.h | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/include/access/genam.h b/src/include/access/genam.h index db6795c0933..0a70691e770 100644 --- a/src/include/access/genam.h +++ b/src/include/access/genam.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: genam.h,v 1.26 2001/07/15 22:48:18 tgl Exp $ + * $Id: genam.h,v 1.27 2001/10/06 23:21:44 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -56,6 +56,8 @@ extern IndexBulkDeleteResult *index_bulk_delete(Relation relation, extern RegProcedure index_cost_estimator(Relation relation); extern RegProcedure index_getprocid(Relation irel, AttrNumber attnum, uint16 procnum); +extern struct FmgrInfo *index_getprocinfo(Relation irel, AttrNumber attnum, + uint16 procnum); /* in genam.c */ extern IndexScanDesc RelationGetIndexScan(Relation relation, bool scanFromEnd, diff --git a/src/include/access/skey.h b/src/include/access/skey.h index 4e49f51afb1..304d5e4a462 100644 --- a/src/include/access/skey.h +++ b/src/include/access/skey.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: skey.h,v 1.16 2001/06/09 18:16:59 tgl Exp $ + * $Id: skey.h,v 1.17 2001/10/06 23:21:44 tgl Exp $ * * Note: * Needs more accessor/assignment routines. @@ -44,5 +44,8 @@ typedef ScanKeyData *ScanKey; extern void ScanKeyEntrySetIllegal(ScanKey entry); extern void ScanKeyEntryInitialize(ScanKey entry, bits16 flags, AttrNumber attributeNumber, RegProcedure procedure, Datum argument); +extern void ScanKeyEntryInitializeWithInfo(ScanKey entry, bits16 flags, + AttrNumber attributeNumber, FmgrInfo *finfo, + MemoryContext mcxt, Datum argument); #endif /* SKEY_H */ |
