Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit63d5fd1

Browse files
committed
Inline fmgr_faddr() for speed.
1 parent726c385 commit63d5fd1

File tree

2 files changed

+19
-15
lines changed

2 files changed

+19
-15
lines changed

‎src/backend/utils/Gen_fmgrtab.sh.in

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#
99
#
1010
# IDENTIFICATION
11-
# $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.6 1998/01/15 19:44:50 pgsql Exp $
11+
# $Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.7 1998/01/31 05:22:41 momjian Exp $
1212
#
1313
# NOTES
1414
# Passes any -D options on to cpp prior to generating the list
@@ -81,7 +81,7 @@ cat > $HFILE <<FuNkYfMgRsTuFf
8181
*
8282
* Copyright (c) 1994, Regents of the University of California
8383
*
84-
*$Id: Gen_fmgrtab.sh.in,v 1.6 1998/01/15 19:44:50 pgsql Exp $
84+
*$Id: Gen_fmgrtab.sh.in,v 1.7 1998/01/31 05:22:41 momjian Exp $
8585
*
8686
* NOTES
8787
*******************************
@@ -123,7 +123,6 @@ typedef struct {
123123
*/
124124
extern char *fmgr_c(FmgrInfo *finfo, FmgrValues *values, bool *isNull);
125125
extern void fmgr_info(Oid procedureId, FmgrInfo *finfo);
126-
extern func_ptr fmgr_faddr(FmgrInfo *finfo);
127126
extern char *fmgr(Oid procedureId, ... );
128127
extern char *fmgr_ptr(FmgrInfo *finfo, ... );
129128
extern char *fmgr_array_args(Oid procedureId, int nargs,
@@ -135,20 +134,31 @@ extern char *fmgr_array_args(Oid procedureId, int nargs,
135134
extern func_ptr fmgr_dynamic(Oid procedureId, int *pronargs);
136135
extern void load_file(char *filename);
137136
138-
139137
/*
140138
*For performance reasons, we often want to simply jump through a
141139
*a function pointer (if it's valid, that is). These calls have
142140
*been macroized so we can run them through a routine that does
143141
*sanity-checking (and so we can track them down more easily when
144142
*we must).
145143
*/
144+
145+
#define fmgr_faddr(finfo)\
146+
(\
147+
fmgr_pl_finfo = (finfo),\
148+
(func_ptr)(finfo)->fn_addr\
149+
)
150+
146151
#ifdef TRACE_FMGR_PTR
147152
#defineFMGR_PTR2(FINFO, ARG1, ARG2)\
148153
fmgr_ptr(FINFO, 2, ARG1, ARG2)
149154
#else
150155
#defineFMGR_PTR2(FINFO, ARG1, ARG2)\
151-
(((FINFO)->fn_addr) ? (*(fmgr_faddr(FINFO)))(ARG1, ARG2) : fmgr((FINFO)->fn_oid, ARG1, ARG2))
156+
(\
157+
((FINFO)->fn_addr) ?\
158+
(*(fmgr_faddr(FINFO)))(ARG1, ARG2)\
159+
:\
160+
fmgr((FINFO)->fn_oid, ARG1, ARG2)\
161+
)
152162
#endif
153163
154164
/*
@@ -182,7 +192,7 @@ cat > $TABCFILE <<FuNkYfMgRtAbStUfF
182192
*
183193
*
184194
* IDENTIFICATION
185-
*$Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.6 1998/01/15 19:44:50 pgsql Exp $
195+
*$Header: /cvsroot/pgsql/src/backend/utils/Attic/Gen_fmgrtab.sh.in,v 1.7 1998/01/31 05:22:41 momjian Exp $
186196
*
187197
* NOTES
188198
*

‎src/backend/utils/fmgr/fmgr.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.11 1998/01/1522:31:33 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.12 1998/01/31 05:22:43 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -33,7 +33,8 @@
3333
#include"commands/trigger.h"
3434

3535

36-
staticFmgrInfo*fmgr_pl_finfo;
36+
/* We don't make this static so fmgr_faddr() macros can access it */
37+
FmgrInfo*fmgr_pl_finfo;
3738

3839
staticchar*
3940
fmgr_pl(char*arg0, ...)
@@ -248,13 +249,6 @@ fmgr_info(Oid procedureId, FmgrInfo *finfo)
248249
}
249250
}
250251

251-
func_ptr
252-
fmgr_faddr(FmgrInfo*finfo)
253-
{
254-
fmgr_pl_finfo=finfo;
255-
returnfinfo->fn_addr;
256-
}
257-
258252
/*
259253
*fmgr- return the value of a function call
260254
*

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp