mirror of
https://github.com/postgres/postgres.git
synced 2025-10-24 01:29:19 +03:00
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.
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user