mirror of
https://github.com/postgres/postgres.git
synced 2025-07-11 10:01:57 +03:00
Move some code from jsonapi.c to jsonfuncs.c.
Specifically, move those functions that depend on ereport() from jsonapi.c to jsonfuncs.c, in preparation for allowing jsonapi.c to be used from frontend code. A few cases where elog(ERROR, ...) is used for can't-happen conditions are left alone; we can handle those in some other way in frontend code. Reviewed by Mark Dilger and Andrew Dunstan. Discussion: http://postgr.es/m/CA+TgmoYfOXhd27MUDGioVh6QtpD0C1K-f6ObSA10AWiHBAL5bA@mail.gmail.com
This commit is contained in:
@ -36,6 +36,15 @@ typedef void (*JsonIterateStringValuesAction) (void *state, char *elem_value, in
|
||||
/* an action that will be applied to each value in transform_json(b)_values functions */
|
||||
typedef text *(*JsonTransformStringValuesAction) (void *state, char *elem_value, int elem_len);
|
||||
|
||||
/* build a JsonLexContext from a text datum */
|
||||
extern JsonLexContext *makeJsonLexContext(text *json, bool need_escapes);
|
||||
|
||||
/* try to parse json, and ereport(ERROR) on failure */
|
||||
extern void pg_parse_json_or_ereport(JsonLexContext *lex, JsonSemAction *sem);
|
||||
|
||||
/* report an error during json lexing or parsing */
|
||||
extern void json_ereport_error(JsonParseErrorType error, JsonLexContext *lex);
|
||||
|
||||
extern uint32 parse_jsonb_index_flags(Jsonb *jb);
|
||||
extern void iterate_jsonb_values(Jsonb *jb, uint32 flags, void *state,
|
||||
JsonIterateStringValuesAction action);
|
||||
|
Reference in New Issue
Block a user