diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/utils/jsonapi.h | 15 | ||||
-rw-r--r-- | src/include/utils/jsonfuncs.h | 9 |
2 files changed, 10 insertions, 14 deletions
diff --git a/src/include/utils/jsonapi.h b/src/include/utils/jsonapi.h index 74dc35c41c6..4d69b184951 100644 --- a/src/include/utils/jsonapi.h +++ b/src/include/utils/jsonapi.h @@ -126,12 +126,6 @@ typedef struct JsonSemAction extern JsonParseErrorType pg_parse_json(JsonLexContext *lex, JsonSemAction *sem); -/* - * Same thing, but signal errors via ereport(ERROR) instead of returning - * a result code. - */ -extern void pg_parse_json_or_ereport(JsonLexContext *lex, JsonSemAction *sem); - /* the null action object used for pure validation */ extern JsonSemAction nullSemAction; @@ -148,15 +142,11 @@ extern JsonParseErrorType json_count_array_elements(JsonLexContext *lex, int *elements); /* - * constructors for JsonLexContext, with or without strval element. + * constructor for JsonLexContext, with or without strval element. * If supplied, the strval element will contain a de-escaped version of * the lexeme. However, doing this imposes a performance penalty, so * it should be avoided if the de-escaped lexeme is not required. - * - * If you already have the json as a text* value, use the first of these - * functions, otherwise use makeJsonLexContextCstringLen(). */ -extern JsonLexContext *makeJsonLexContext(text *json, bool need_escapes); extern JsonLexContext *makeJsonLexContextCstringLen(char *json, int len, bool need_escapes); @@ -164,9 +154,6 @@ extern JsonLexContext *makeJsonLexContextCstringLen(char *json, /* lex one token */ extern JsonParseErrorType json_lex(JsonLexContext *lex); -/* report an error during json lexing or parsing */ -extern void json_ereport_error(JsonParseErrorType error, JsonLexContext *lex); - /* construct an error detail string for a json error */ extern char *json_errdetail(JsonParseErrorType error, JsonLexContext *lex); diff --git a/src/include/utils/jsonfuncs.h b/src/include/utils/jsonfuncs.h index 19f087ccae9..b993f38409f 100644 --- a/src/include/utils/jsonfuncs.h +++ b/src/include/utils/jsonfuncs.h @@ -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); |