Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 8f88c0f

Browse files
author
Nikita Glukhov
committed
Add pushJsonb[Value|KeyValue|Elem]<Type>()
1 parent 7f08e3b commit 8f88c0f

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

src/include/utils/json_generic.h

+47
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,53 @@ JsonValueInitFloat(JsonbValue *jbv, float4 f)
434434
return jbv;
435435
}
436436

437+
#define pushJsonbKey(pstate, jbv, key) \
438+
pushJsonbValue(pstate, WJB_KEY, JsonValueInitString(jbv, key))
439+
440+
#define pushJsonbValueGeneric(Type, pstate, jbv, val) \
441+
pushJsonbValue(pstate, WJB_VALUE, JsonValueInit##Type(jbv, val))
442+
443+
#define pushJsonbElemGeneric(Type, pstate, jbv, val) \
444+
pushJsonbValue(pstate, WJB_ELEM, JsonValueInit##Type(jbv, val))
445+
446+
#define pushJsonbValueInteger(pstate, jbv, i) \
447+
pushJsonbValueGeneric(Integer, pstate, jbv, i)
448+
449+
#define pushJsonbValueFloat(pstate, jbv, f) \
450+
pushJsonbValueGeneric(Float, pstate, jbv, f)
451+
452+
#define pushJsonbElemFloat(pstate, jbv, f) \
453+
pushJsonbElemGeneric(Float, pstate, jbv, f)
454+
455+
#define pushJsonbElemString(pstate, jbv, txt) \
456+
pushJsonbElemGeneric(String, pstate, jbv, txt)
457+
458+
#define pushJsonbElemText(pstate, jbv, txt) \
459+
pushJsonbElemGeneric(Text, pstate, jbv, txt)
460+
461+
#define pushJsonbElemNumeric(pstate, jbv, num) \
462+
pushJsonbElemGeneric(Numeric, pstate, jbv, num)
463+
464+
#define pushJsonbElemInteger(pstate, jbv, num) \
465+
pushJsonbElemGeneric(Integer, pstate, jbv, num)
466+
467+
#define pushJsonbElemBinary(pstate, jbv, jbcont) \
468+
pushJsonbElemGeneric(Binary, pstate, jbv, jbcont)
469+
470+
#define pushJsonbKeyValueGeneric(Type, pstate, jbv, key, val) ( \
471+
pushJsonbKey(pstate, jbv, key), \
472+
pushJsonbValueGeneric(Type, pstate, jbv, val) \
473+
)
474+
475+
#define pushJsonbKeyValueString(pstate, jbv, key, val) \
476+
pushJsonbKeyValueGeneric(String, pstate, jbv, key, val)
477+
478+
#define pushJsonbKeyValueFloat(pstate, jbv, key, val) \
479+
pushJsonbKeyValueGeneric(Float, pstate, jbv, key, val)
480+
481+
#define pushJsonbKeyValueInteger(pstate, jbv, key, val) \
482+
pushJsonbKeyValueGeneric(Integer, pstate, jbv, key, val)
483+
437484
extern Json *JsonValueToJson(JsonValue *val);
438485
extern JsonValue *JsonToJsonValue(Json *json, JsonValue *jv);
439486
extern JsonValue *JsonValueUnpackBinary(const JsonValue *jbv);

0 commit comments

Comments
 (0)