Skip to content

Commit a08ce90

Browse files
author
Nikita Glukhov
committed
Add pushJsonb[Value|KeyValue|Elem]<Type>()
1 parent a4dbe40 commit a08ce90

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

src/include/utils/json_generic.h

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,53 @@ JsonValueInitFloat(JsonbValue *jbv, float4 f)
420420
return jbv;
421421
}
422422

423+
#define pushJsonbKey(pstate, jbv, key) \
424+
pushJsonbValue(pstate, WJB_KEY, JsonValueInitString(jbv, key))
425+
426+
#define pushJsonbValueGeneric(Type, pstate, jbv, val) \
427+
pushJsonbValue(pstate, WJB_VALUE, JsonValueInit##Type(jbv, val))
428+
429+
#define pushJsonbElemGeneric(Type, pstate, jbv, val) \
430+
pushJsonbValue(pstate, WJB_ELEM, JsonValueInit##Type(jbv, val))
431+
432+
#define pushJsonbValueInteger(pstate, jbv, i) \
433+
pushJsonbValueGeneric(Integer, pstate, jbv, i)
434+
435+
#define pushJsonbValueFloat(pstate, jbv, f) \
436+
pushJsonbValueGeneric(Float, pstate, jbv, f)
437+
438+
#define pushJsonbElemFloat(pstate, jbv, f) \
439+
pushJsonbElemGeneric(Float, pstate, jbv, f)
440+
441+
#define pushJsonbElemString(pstate, jbv, txt) \
442+
pushJsonbElemGeneric(String, pstate, jbv, txt)
443+
444+
#define pushJsonbElemText(pstate, jbv, txt) \
445+
pushJsonbElemGeneric(Text, pstate, jbv, txt)
446+
447+
#define pushJsonbElemNumeric(pstate, jbv, num) \
448+
pushJsonbElemGeneric(Numeric, pstate, jbv, num)
449+
450+
#define pushJsonbElemInteger(pstate, jbv, num) \
451+
pushJsonbElemGeneric(Integer, pstate, jbv, num)
452+
453+
#define pushJsonbElemBinary(pstate, jbv, jbcont) \
454+
pushJsonbElemGeneric(Binary, pstate, jbv, jbcont)
455+
456+
#define pushJsonbKeyValueGeneric(Type, pstate, jbv, key, val) ( \
457+
pushJsonbKey(pstate, jbv, key), \
458+
pushJsonbValueGeneric(Type, pstate, jbv, val) \
459+
)
460+
461+
#define pushJsonbKeyValueString(pstate, jbv, key, val) \
462+
pushJsonbKeyValueGeneric(String, pstate, jbv, key, val)
463+
464+
#define pushJsonbKeyValueFloat(pstate, jbv, key, val) \
465+
pushJsonbKeyValueGeneric(Float, pstate, jbv, key, val)
466+
467+
#define pushJsonbKeyValueInteger(pstate, jbv, key, val) \
468+
pushJsonbKeyValueGeneric(Integer, pstate, jbv, key, val)
469+
423470
extern Json *JsonValueToJson(JsonValue *val);
424471
extern JsonValue *JsonToJsonValue(Json *json, JsonValue *jv);
425472
extern JsonValue *JsonValueUnpackBinary(const JsonValue *jbv);

0 commit comments

Comments
 (0)