Skip to content

Commit 352a24a

Browse files
committed
Generate fmgr prototypes automatically
Gen_fmgrtab.pl creates a new file fmgrprotos.h, which contains prototypes for all functions registered in pg_proc.h. This avoids having to manually maintain these prototypes across a random variety of header files. It also automatically enforces a correct function signature, and since there are warnings about missing prototypes, it will detect functions that are defined but not registered in pg_proc.h (or otherwise used). Reviewed-by: Pavel Stehule <pavel.stehule@gmail.com>
1 parent 323b96a commit 352a24a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+125
-2899
lines changed

contrib/btree_gist/btree_bit.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include "btree_gist.h"
77
#include "btree_utils_var.h"
8+
#include "utils/builtins.h"
89
#include "utils/bytea.h"
910
#include "utils/varbit.h"
1011

contrib/btree_gist/btree_bytea.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include "btree_gist.h"
77
#include "btree_utils_var.h"
8+
#include "utils/builtins.h"
89
#include "utils/bytea.h"
910

1011

contrib/btree_gist/btree_date.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include "btree_gist.h"
77
#include "btree_utils_num.h"
8+
#include "utils/builtins.h"
89
#include "utils/date.h"
910

1011
typedef struct

contrib/btree_gist/btree_interval.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include "btree_gist.h"
77
#include "btree_utils_num.h"
8+
#include "utils/builtins.h"
89
#include "utils/timestamp.h"
910

1011
typedef struct

contrib/btree_gist/btree_time.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include "btree_gist.h"
77
#include "btree_utils_num.h"
8+
#include "utils/builtins.h"
89
#include "utils/date.h"
910
#include "utils/timestamp.h"
1011

contrib/intarray/_int_selfuncs.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "catalog/pg_operator.h"
2020
#include "catalog/pg_statistic.h"
2121
#include "catalog/pg_type.h"
22+
#include "utils/builtins.h"
2223
#include "utils/selfuncs.h"
2324
#include "utils/syscache.h"
2425
#include "utils/lsyscache.h"

contrib/lo/lo.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
#include "commands/trigger.h"
1111
#include "executor/spi.h"
12-
#include "libpq/be-fsstubs.h"
12+
#include "utils/builtins.h"
1313
#include "utils/rel.h"
1414

1515
PG_MODULE_MAGIC;

contrib/spi/moddatetime.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ OH, me, I'm Terry Mackintosh <terry@terrym.com>
1919
#include "catalog/pg_type.h"
2020
#include "executor/spi.h"
2121
#include "commands/trigger.h"
22+
#include "utils/builtins.h"
2223
#include "utils/rel.h"
23-
#include "utils/timestamp.h"
2424

2525
PG_MODULE_MAGIC;
2626

src/backend/Makefile

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,8 @@ storage/lmgr/lwlocknames.h: storage/lmgr/generate-lwlocknames.pl storage/lmgr/lw
139139
utils/errcodes.h: utils/generate-errcodes.pl utils/errcodes.txt
140140
$(MAKE) -C utils errcodes.h
141141

142-
utils/fmgroids.h: utils/Gen_fmgrtab.pl catalog/Catalog.pm $(top_srcdir)/src/include/catalog/pg_proc.h
143-
$(MAKE) -C utils fmgroids.h
142+
utils/fmgroids.h utils/fmgrprotos.h: utils/Gen_fmgrtab.pl catalog/Catalog.pm $(top_srcdir)/src/include/catalog/pg_proc.h
143+
$(MAKE) -C utils $(notdir $@)
144144

145145
utils/probes.h: utils/probes.d
146146
$(MAKE) -C utils probes.h
@@ -166,7 +166,7 @@ submake-schemapg:
166166

167167
.PHONY: generated-headers
168168

169-
generated-headers: $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/catalog/schemapg.h $(top_builddir)/src/include/storage/lwlocknames.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/probes.h
169+
generated-headers: $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/catalog/schemapg.h $(top_builddir)/src/include/storage/lwlocknames.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/fmgrprotos.h $(top_builddir)/src/include/utils/probes.h
170170

171171
$(top_builddir)/src/include/parser/gram.h: parser/gram.h
172172
prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \
@@ -193,6 +193,11 @@ $(top_builddir)/src/include/utils/fmgroids.h: utils/fmgroids.h
193193
cd '$(dir $@)' && rm -f $(notdir $@) && \
194194
$(LN_S) "$$prereqdir/$(notdir $<)" .
195195

196+
$(top_builddir)/src/include/utils/fmgrprotos.h: utils/fmgrprotos.h
197+
prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \
198+
cd '$(dir $@)' && rm -f $(notdir $@) && \
199+
$(LN_S) "$$prereqdir/$(notdir $<)" .
200+
196201
$(top_builddir)/src/include/utils/probes.h: utils/probes.h
197202
cd '$(dir $@)' && rm -f $(notdir $@) && \
198203
$(LN_S) "../../../$(subdir)/utils/probes.h" .
@@ -211,7 +216,7 @@ distprep:
211216
$(MAKE) -C catalog schemapg.h postgres.bki postgres.description postgres.shdescription
212217
$(MAKE) -C replication repl_gram.c repl_scanner.c syncrep_gram.c syncrep_scanner.c
213218
$(MAKE) -C storage/lmgr lwlocknames.h
214-
$(MAKE) -C utils fmgrtab.c fmgroids.h errcodes.h
219+
$(MAKE) -C utils fmgrtab.c fmgroids.h fmgrprotos.h errcodes.h
215220
$(MAKE) -C utils/misc guc-file.c
216221
$(MAKE) -C utils/sort qsort_tuple.c
217222

@@ -303,6 +308,7 @@ clean:
303308
$(top_builddir)/src/include/catalog/schemapg.h \
304309
$(top_builddir)/src/include/storage/lwlocknames.h \
305310
$(top_builddir)/src/include/utils/fmgroids.h \
311+
$(top_builddir)/src/include/utils/fmgrprotos.h \
306312
$(top_builddir)/src/include/utils/probes.h
307313
ifeq ($(PORTNAME), cygwin)
308314
rm -f postgres.dll libpostgres.a
@@ -331,6 +337,7 @@ maintainer-clean: distclean
331337
storage/lmgr/lwlocknames.c \
332338
storage/lmgr/lwlocknames.h \
333339
utils/fmgroids.h \
340+
utils/fmgrprotos.h \
334341
utils/fmgrtab.c \
335342
utils/errcodes.h \
336343
utils/misc/guc-file.c \

src/backend/access/brin/brin.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "pgstat.h"
2929
#include "storage/bufmgr.h"
3030
#include "storage/freespace.h"
31+
#include "utils/builtins.h"
3132
#include "utils/index_selfuncs.h"
3233
#include "utils/memutils.h"
3334
#include "utils/rel.h"

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy