mirror of
https://github.com/postgres/postgres.git
synced 2025-07-26 01:22:12 +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:
@ -121,61 +121,6 @@ typedef TSVectorData *TSVector;
|
||||
#define PG_GETARG_TSVECTOR_COPY(n) DatumGetTSVectorCopy(PG_GETARG_DATUM(n))
|
||||
#define PG_RETURN_TSVECTOR(x) return TSVectorGetDatum(x)
|
||||
|
||||
/*
|
||||
* I/O
|
||||
*/
|
||||
extern Datum tsvectorin(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvectorout(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvectorsend(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvectorrecv(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* operations with tsvector
|
||||
*/
|
||||
extern Datum tsvector_lt(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_le(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_eq(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_ne(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_ge(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_gt(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_cmp(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum tsvector_length(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_strip(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_setweight(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_setweight_by_filter(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_concat(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_delete_str(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_delete_arr(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_unnest(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_to_array(PG_FUNCTION_ARGS);
|
||||
extern Datum array_to_tsvector(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_filter(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_update_trigger_byid(PG_FUNCTION_ARGS);
|
||||
extern Datum tsvector_update_trigger_bycolumn(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum ts_match_vq(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_match_qv(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_match_tt(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_match_tq(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum ts_stat1(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_stat2(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum ts_rank_tt(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_rank_wtt(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_rank_ttf(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_rank_wttf(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_rankcd_tt(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_rankcd_wtt(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_rankcd_ttf(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_rankcd_wttf(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum tsmatchsel(PG_FUNCTION_ARGS);
|
||||
extern Datum tsmatchjoinsel(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum ts_typanalyze(PG_FUNCTION_ARGS);
|
||||
|
||||
|
||||
/*
|
||||
* TSQuery
|
||||
@ -294,38 +239,4 @@ typedef TSQueryData *TSQuery;
|
||||
#define PG_GETARG_TSQUERY_COPY(n) DatumGetTSQueryCopy(PG_GETARG_DATUM(n))
|
||||
#define PG_RETURN_TSQUERY(x) return TSQueryGetDatum(x)
|
||||
|
||||
/*
|
||||
* I/O
|
||||
*/
|
||||
extern Datum tsqueryin(PG_FUNCTION_ARGS);
|
||||
extern Datum tsqueryout(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquerysend(PG_FUNCTION_ARGS);
|
||||
extern Datum tsqueryrecv(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* operations with tsquery
|
||||
*/
|
||||
extern Datum tsquery_lt(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_le(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_eq(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_ne(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_ge(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_gt(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_cmp(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum tsquerytree(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_numnode(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum tsquery_and(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_or(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_phrase(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_phrase_distance(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_not(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum tsquery_rewrite(PG_FUNCTION_ARGS);
|
||||
extern Datum tsquery_rewrite_query(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum tsq_mcontains(PG_FUNCTION_ARGS);
|
||||
extern Datum tsq_mcontained(PG_FUNCTION_ARGS);
|
||||
|
||||
#endif /* _PG_TSTYPE_H_ */
|
||||
|
@ -184,51 +184,6 @@ extern bool tsquery_requires_match(QueryItem *curitem);
|
||||
extern TSVector make_tsvector(ParsedText *prs);
|
||||
extern int32 tsCompareString(char *a, int lena, char *b, int lenb, bool prefix);
|
||||
|
||||
extern Datum to_tsvector_byid(PG_FUNCTION_ARGS);
|
||||
extern Datum to_tsvector(PG_FUNCTION_ARGS);
|
||||
extern Datum to_tsquery_byid(PG_FUNCTION_ARGS);
|
||||
extern Datum to_tsquery(PG_FUNCTION_ARGS);
|
||||
extern Datum plainto_tsquery_byid(PG_FUNCTION_ARGS);
|
||||
extern Datum plainto_tsquery(PG_FUNCTION_ARGS);
|
||||
extern Datum phraseto_tsquery_byid(PG_FUNCTION_ARGS);
|
||||
extern Datum phraseto_tsquery(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* GiST support function
|
||||
*/
|
||||
|
||||
extern Datum gtsvector_compress(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsvector_decompress(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsvector_consistent(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsvector_union(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsvector_same(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsvector_penalty(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsvector_picksplit(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsvector_consistent_oldsig(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* IO functions for pseudotype gtsvector
|
||||
* used internally in tsvector GiST opclass
|
||||
*/
|
||||
extern Datum gtsvectorin(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsvectorout(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* GIN support function
|
||||
*/
|
||||
|
||||
extern Datum gin_extract_tsvector(PG_FUNCTION_ARGS);
|
||||
extern Datum gin_cmp_tslexeme(PG_FUNCTION_ARGS);
|
||||
extern Datum gin_cmp_prefix(PG_FUNCTION_ARGS);
|
||||
extern Datum gin_extract_tsquery(PG_FUNCTION_ARGS);
|
||||
extern Datum gin_tsquery_consistent(PG_FUNCTION_ARGS);
|
||||
extern Datum gin_tsquery_triconsistent(PG_FUNCTION_ARGS);
|
||||
extern Datum gin_extract_tsvector_2args(PG_FUNCTION_ARGS);
|
||||
extern Datum gin_extract_tsquery_5args(PG_FUNCTION_ARGS);
|
||||
extern Datum gin_tsquery_consistent_6args(PG_FUNCTION_ARGS);
|
||||
extern Datum gin_extract_tsquery_oldsig(PG_FUNCTION_ARGS);
|
||||
extern Datum gin_tsquery_consistent_oldsig(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* Possible strategy numbers for indexes
|
||||
* TSearchStrategyNumber - (tsvector|text) @@ tsquery
|
||||
@ -282,76 +237,4 @@ extern TSQuerySign makeTSQuerySign(TSQuery a);
|
||||
extern QTNode *findsubquery(QTNode *root, QTNode *ex, QTNode *subs,
|
||||
bool *isfind);
|
||||
|
||||
/*
|
||||
* TSQuery GiST support
|
||||
*/
|
||||
extern Datum gtsquery_compress(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsquery_decompress(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsquery_consistent(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsquery_union(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsquery_same(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsquery_penalty(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsquery_picksplit(PG_FUNCTION_ARGS);
|
||||
extern Datum gtsquery_consistent_oldsig(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* Parser interface to SQL
|
||||
*/
|
||||
extern Datum ts_token_type_byid(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_token_type_byname(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_parse_byid(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_parse_byname(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* Default word parser
|
||||
*/
|
||||
|
||||
extern Datum prsd_start(PG_FUNCTION_ARGS);
|
||||
extern Datum prsd_nexttoken(PG_FUNCTION_ARGS);
|
||||
extern Datum prsd_end(PG_FUNCTION_ARGS);
|
||||
extern Datum prsd_headline(PG_FUNCTION_ARGS);
|
||||
extern Datum prsd_lextype(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* Dictionary interface to SQL
|
||||
*/
|
||||
extern Datum ts_lexize(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* Simple built-in dictionary
|
||||
*/
|
||||
extern Datum dsimple_init(PG_FUNCTION_ARGS);
|
||||
extern Datum dsimple_lexize(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* Synonym built-in dictionary
|
||||
*/
|
||||
extern Datum dsynonym_init(PG_FUNCTION_ARGS);
|
||||
extern Datum dsynonym_lexize(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* ISpell dictionary
|
||||
*/
|
||||
extern Datum dispell_init(PG_FUNCTION_ARGS);
|
||||
extern Datum dispell_lexize(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* Thesaurus
|
||||
*/
|
||||
extern Datum thesaurus_init(PG_FUNCTION_ARGS);
|
||||
extern Datum thesaurus_lexize(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* headline
|
||||
*/
|
||||
extern Datum ts_headline_byid_opt(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_headline_byid(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_headline(PG_FUNCTION_ARGS);
|
||||
extern Datum ts_headline_opt(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* current cfg
|
||||
*/
|
||||
extern Datum get_current_ts_config(PG_FUNCTION_ARGS);
|
||||
|
||||
#endif /* _PG_TS_UTILS_H_ */
|
||||
|
Reference in New Issue
Block a user