mirror of
https://github.com/postgres/postgres.git
synced 2025-10-24 01:29:19 +03:00
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>
This commit is contained in:
@@ -203,6 +203,4 @@ typedef struct IndexAmRoutine
|
||||
extern IndexAmRoutine *GetIndexAmRoutine(Oid amhandler);
|
||||
extern IndexAmRoutine *GetIndexAmRoutineByAmId(Oid amoid, bool noerror);
|
||||
|
||||
extern Datum amvalidate(PG_FUNCTION_ARGS);
|
||||
|
||||
#endif /* AMAPI_H */
|
||||
|
||||
@@ -15,12 +15,6 @@
|
||||
#include "utils/relcache.h"
|
||||
|
||||
|
||||
/*
|
||||
* prototypes for functions in brin.c (external entry points for BRIN)
|
||||
*/
|
||||
extern Datum brinhandler(PG_FUNCTION_ARGS);
|
||||
extern Datum brin_summarize_new_values(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* Storage type for BRIN's reloptions
|
||||
*/
|
||||
|
||||
@@ -591,7 +591,6 @@ typedef struct ginxlogDeleteListPages
|
||||
|
||||
|
||||
/* ginutil.c */
|
||||
extern Datum ginhandler(PG_FUNCTION_ARGS);
|
||||
extern bytea *ginoptions(Datum reloptions, bool validate);
|
||||
extern void initGinState(GinState *state, Relation index);
|
||||
extern Buffer GinNewBuffer(Relation index);
|
||||
@@ -880,9 +879,6 @@ extern void ginFreeScanKeys(GinScanOpaque so);
|
||||
/* ginget.c */
|
||||
extern int64 gingetbitmap(IndexScanDesc scan, TIDBitmap *tbm);
|
||||
|
||||
/* ginfast.c */
|
||||
extern Datum gin_clean_pending_list(PG_FUNCTION_ARGS);
|
||||
|
||||
/* ginlogic.c */
|
||||
extern void ginInitConsistentFunction(GinState *ginstate, GinScanKey key);
|
||||
|
||||
|
||||
@@ -423,7 +423,6 @@ typedef struct GiSTOptions
|
||||
} GiSTOptions;
|
||||
|
||||
/* gist.c */
|
||||
extern Datum gisthandler(PG_FUNCTION_ARGS);
|
||||
extern void gistbuildempty(Relation index);
|
||||
extern bool gistinsert(Relation r, Datum *values, bool *isnull,
|
||||
ItemPointer ht_ctid, Relation heapRel,
|
||||
|
||||
@@ -258,7 +258,6 @@ typedef HashMetaPageData *HashMetaPage;
|
||||
|
||||
/* public routines */
|
||||
|
||||
extern Datum hashhandler(PG_FUNCTION_ARGS);
|
||||
extern IndexBuildResult *hashbuild(Relation heap, Relation index,
|
||||
struct IndexInfo *indexInfo);
|
||||
extern void hashbuildempty(Relation index);
|
||||
@@ -280,27 +279,6 @@ extern IndexBulkDeleteResult *hashvacuumcleanup(IndexVacuumInfo *info,
|
||||
extern bytea *hashoptions(Datum reloptions, bool validate);
|
||||
extern bool hashvalidate(Oid opclassoid);
|
||||
|
||||
/*
|
||||
* Datatype-specific hash functions in hashfunc.c.
|
||||
*
|
||||
* These support both hash indexes and hash joins.
|
||||
*
|
||||
* NOTE: some of these are also used by catcache operations, without
|
||||
* any direct connection to hash indexes. Also, the common hash_any
|
||||
* routine is also used by dynahash tables.
|
||||
*/
|
||||
extern Datum hashchar(PG_FUNCTION_ARGS);
|
||||
extern Datum hashint2(PG_FUNCTION_ARGS);
|
||||
extern Datum hashint4(PG_FUNCTION_ARGS);
|
||||
extern Datum hashint8(PG_FUNCTION_ARGS);
|
||||
extern Datum hashoid(PG_FUNCTION_ARGS);
|
||||
extern Datum hashenum(PG_FUNCTION_ARGS);
|
||||
extern Datum hashfloat4(PG_FUNCTION_ARGS);
|
||||
extern Datum hashfloat8(PG_FUNCTION_ARGS);
|
||||
extern Datum hashoidvector(PG_FUNCTION_ARGS);
|
||||
extern Datum hashname(PG_FUNCTION_ARGS);
|
||||
extern Datum hashtext(PG_FUNCTION_ARGS);
|
||||
extern Datum hashvarlena(PG_FUNCTION_ARGS);
|
||||
extern Datum hash_any(register const unsigned char *k, register int keylen);
|
||||
extern Datum hash_uint32(uint32 k);
|
||||
|
||||
|
||||
@@ -654,7 +654,6 @@ typedef BTScanOpaqueData *BTScanOpaque;
|
||||
/*
|
||||
* prototypes for functions in nbtree.c (external entry points for btree)
|
||||
*/
|
||||
extern Datum bthandler(PG_FUNCTION_ARGS);
|
||||
extern IndexBuildResult *btbuild(Relation heap, Relation index,
|
||||
struct IndexInfo *indexInfo);
|
||||
extern void btbuildempty(Relation index);
|
||||
|
||||
@@ -183,7 +183,6 @@ typedef struct spgLeafConsistentOut
|
||||
|
||||
|
||||
/* spgutils.c */
|
||||
extern Datum spghandler(PG_FUNCTION_ARGS);
|
||||
extern bytea *spgoptions(Datum reloptions, bool validate);
|
||||
|
||||
/* spginsert.c */
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
/*
|
||||
* xlog_fn.h
|
||||
*
|
||||
* PostgreSQL transaction log SQL-callable function declarations
|
||||
*
|
||||
* Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* src/include/access/xlog_fn.h
|
||||
*/
|
||||
#ifndef XLOG_FN_H
|
||||
#define XLOG_FN_H
|
||||
|
||||
#include "fmgr.h"
|
||||
|
||||
extern Datum pg_start_backup(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_stop_backup(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_stop_backup_v2(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_switch_xlog(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_create_restore_point(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_current_xlog_location(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_current_xlog_insert_location(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_current_xlog_flush_location(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_last_xlog_receive_location(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_last_xlog_replay_location(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_last_xact_replay_timestamp(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_xlogfile_name_offset(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_xlogfile_name(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_is_in_recovery(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_xlog_replay_pause(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_xlog_replay_resume(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_is_xlog_replay_paused(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_xlog_location_diff(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_is_in_backup(PG_FUNCTION_ARGS);
|
||||
extern Datum pg_backup_start_time(PG_FUNCTION_ARGS);
|
||||
|
||||
#endif /* XLOG_FN_H */
|
||||
Reference in New Issue
Block a user