mirror of
https://github.com/postgres/postgres.git
synced 2025-07-12 21:01:52 +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:
@ -14,73 +14,9 @@
|
||||
#ifndef JSON_H
|
||||
#define JSON_H
|
||||
|
||||
#include "fmgr.h"
|
||||
#include "lib/stringinfo.h"
|
||||
|
||||
/* functions in json.c */
|
||||
extern Datum json_in(PG_FUNCTION_ARGS);
|
||||
extern Datum json_out(PG_FUNCTION_ARGS);
|
||||
extern Datum json_recv(PG_FUNCTION_ARGS);
|
||||
extern Datum json_send(PG_FUNCTION_ARGS);
|
||||
extern Datum array_to_json(PG_FUNCTION_ARGS);
|
||||
extern Datum array_to_json_pretty(PG_FUNCTION_ARGS);
|
||||
extern Datum row_to_json(PG_FUNCTION_ARGS);
|
||||
extern Datum row_to_json_pretty(PG_FUNCTION_ARGS);
|
||||
extern Datum to_json(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum json_agg_transfn(PG_FUNCTION_ARGS);
|
||||
extern Datum json_agg_finalfn(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum json_object_agg_finalfn(PG_FUNCTION_ARGS);
|
||||
extern Datum json_object_agg_transfn(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum json_build_object(PG_FUNCTION_ARGS);
|
||||
extern Datum json_build_object_noargs(PG_FUNCTION_ARGS);
|
||||
extern Datum json_build_array(PG_FUNCTION_ARGS);
|
||||
extern Datum json_build_array_noargs(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum json_object(PG_FUNCTION_ARGS);
|
||||
extern Datum json_object_two_arg(PG_FUNCTION_ARGS);
|
||||
|
||||
extern void escape_json(StringInfo buf, const char *str);
|
||||
|
||||
extern Datum json_typeof(PG_FUNCTION_ARGS);
|
||||
|
||||
/* functions in jsonfuncs.c */
|
||||
extern Datum json_object_field(PG_FUNCTION_ARGS);
|
||||
extern Datum json_object_field_text(PG_FUNCTION_ARGS);
|
||||
extern Datum json_array_element(PG_FUNCTION_ARGS);
|
||||
extern Datum json_array_element_text(PG_FUNCTION_ARGS);
|
||||
extern Datum json_extract_path(PG_FUNCTION_ARGS);
|
||||
extern Datum json_extract_path_text(PG_FUNCTION_ARGS);
|
||||
extern Datum json_object_keys(PG_FUNCTION_ARGS);
|
||||
extern Datum json_array_length(PG_FUNCTION_ARGS);
|
||||
extern Datum json_each(PG_FUNCTION_ARGS);
|
||||
extern Datum json_each_text(PG_FUNCTION_ARGS);
|
||||
extern Datum json_array_elements(PG_FUNCTION_ARGS);
|
||||
extern Datum json_array_elements_text(PG_FUNCTION_ARGS);
|
||||
extern Datum json_populate_record(PG_FUNCTION_ARGS);
|
||||
extern Datum json_populate_recordset(PG_FUNCTION_ARGS);
|
||||
extern Datum json_to_record(PG_FUNCTION_ARGS);
|
||||
extern Datum json_to_recordset(PG_FUNCTION_ARGS);
|
||||
extern Datum json_strip_nulls(PG_FUNCTION_ARGS);
|
||||
|
||||
extern Datum jsonb_object_field(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_object_field_text(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_array_element(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_array_element_text(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_extract_path(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_extract_path_text(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_object_keys(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_array_length(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_each(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_each_text(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_array_elements_text(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_array_elements(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_populate_record(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_populate_recordset(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_to_record(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_to_recordset(PG_FUNCTION_ARGS);
|
||||
extern Datum jsonb_strip_nulls(PG_FUNCTION_ARGS);
|
||||
|
||||
#endif /* JSON_H */
|
||||
|
Reference in New Issue
Block a user