diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2017-03-31 14:25:25 -0400 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2017-03-31 14:25:25 -0400 |
commit | c80b9920fcbcbf75e3d7e8fe092bf6e15d9d40b8 (patch) | |
tree | 3a0be10eafc54c52640c34b594fa6a096ed46d6b /src/include/utils/jsonapi.h | |
parent | 156d3882f89d2a224029e4c81adacd279eb1cdfc (diff) | |
download | postgresql-c80b9920fcbcbf75e3d7e8fe092bf6e15d9d40b8.tar.gz postgresql-c80b9920fcbcbf75e3d7e8fe092bf6e15d9d40b8.zip |
Transform or iterate over json(b) string values
Dmitry Dolgov, reviewed and lightly edited by me.
Diffstat (limited to 'src/include/utils/jsonapi.h')
-rw-r--r-- | src/include/utils/jsonapi.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/include/utils/jsonapi.h b/src/include/utils/jsonapi.h index 8f132d732be..50c29c3a866 100644 --- a/src/include/utils/jsonapi.h +++ b/src/include/utils/jsonapi.h @@ -14,6 +14,7 @@ #ifndef JSONAPI_H #define JSONAPI_H +#include "jsonb.h" #include "lib/stringinfo.h" typedef enum @@ -131,4 +132,19 @@ extern JsonLexContext *makeJsonLexContextCstringLen(char *json, */ extern bool IsValidJsonNumber(const char *str, int len); +/* an action that will be applied to each value in iterate_json(b)_string_vaues functions */ +typedef void (*JsonIterateStringValuesAction) (void *state, char *elem_value, int elem_len); + +/* an action that will be applied to each value in transform_json(b)_string_values functions */ +typedef text * (*JsonTransformStringValuesAction) (void *state, char *elem_value, int elem_len); + +extern void iterate_jsonb_string_values(Jsonb *jb, void *state, + JsonIterateStringValuesAction action); +extern void iterate_json_string_values(text *json, void *action_state, + JsonIterateStringValuesAction action); +extern Jsonb *transform_jsonb_string_values(Jsonb *jsonb, void *action_state, + JsonTransformStringValuesAction transform_action); +extern text *transform_json_string_values(text *json, void *action_state, + JsonTransformStringValuesAction transform_action); + #endif /* JSONAPI_H */ |