mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
JSON generation improvements.
This adds the following: json_agg(anyrecord) -> json to_json(any) -> json hstore_to_json(hstore) -> json (also used as a cast) hstore_to_json_loose(hstore) -> json The last provides heuristic treatment of numbers and booleans. Also, in json generation, if any non-builtin type has a cast to json, that function is used instead of the type's output function. Andrew Dunstan, reviewed by Steve Singer. Catalog version bumped.
This commit is contained in:
@@ -53,6 +53,6 @@
|
||||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 201303081
|
||||
#define CATALOG_VERSION_NO 201303101
|
||||
|
||||
#endif
|
||||
|
@@ -232,6 +232,9 @@ DATA(insert ( 3538 string_agg_transfn string_agg_finalfn 0 2281 _null_ ));
|
||||
/* bytea */
|
||||
DATA(insert ( 3545 bytea_string_agg_transfn bytea_string_agg_finalfn 0 2281 _null_ ));
|
||||
|
||||
/* json */
|
||||
DATA(insert ( 3175 json_agg_transfn json_agg_finalfn 0 2281 _null_ ));
|
||||
|
||||
/*
|
||||
* prototypes for functions in pg_aggregate.c
|
||||
*/
|
||||
|
@@ -4106,6 +4106,14 @@ DATA(insert OID = 3155 ( row_to_json PGNSP PGUID 12 1 0 0 0 f f f f t f s 1
|
||||
DESCR("map row to json");
|
||||
DATA(insert OID = 3156 ( row_to_json PGNSP PGUID 12 1 0 0 0 f f f f t f s 2 0 114 "2249 16" _null_ _null_ _null_ _null_ row_to_json_pretty _null_ _null_ _null_ ));
|
||||
DESCR("map row to json with optional pretty printing");
|
||||
DATA(insert OID = 3173 ( json_agg_transfn PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 2281 "2281 2283" _null_ _null_ _null_ _null_ json_agg_transfn _null_ _null_ _null_ ));
|
||||
DESCR("json aggregate transition function");
|
||||
DATA(insert OID = 3174 ( json_agg_finalfn PGNSP PGUID 12 1 0 0 0 f f f f f f i 1 0 114 "2281" _null_ _null_ _null_ _null_ json_agg_finalfn _null_ _null_ _null_ ));
|
||||
DESCR("json aggregate final function");
|
||||
DATA(insert OID = 3175 ( json_agg PGNSP PGUID 12 1 0 0 0 t f f f f f i 1 0 114 "2283" _null_ _null_ _null_ _null_ aggregate_dummy _null_ _null_ _null_ ));
|
||||
DESCR("aggregate input into json");
|
||||
DATA(insert OID = 3176 ( to_json PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 114 "2283" _null_ _null_ _null_ _null_ to_json _null_ _null_ _null_ ));
|
||||
DESCR("map input to json");
|
||||
|
||||
/* uuid */
|
||||
DATA(insert OID = 2952 ( uuid_in PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 2950 "2275" _null_ _null_ _null_ _null_ uuid_in _null_ _null_ _null_ ));
|
||||
|
@@ -25,6 +25,11 @@ 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 void escape_json(StringInfo buf, const char *str);
|
||||
|
||||
#endif /* JSON_H */
|
||||
|
Reference in New Issue
Block a user