356 Assert(!(key_scalar && is_null));
360 appendStringInfoString(
result,
"null");
370 (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
371 errmsg(
"key value must be scalar, not array, composite, or json")));
382 outputstr = DatumGetBool(val) ?
"true" :
"false";
384 escape_json(
result, outputstr);
386 appendStringInfoString(
result, outputstr);
389 outputstr = OidOutputFunctionCall(outfuncoid, val);
395 if (!key_scalar && IsValidJsonNumber(outputstr, strlen(outputstr)))
396 appendStringInfoString(
result, outputstr);
398 escape_json(
result, outputstr);
403 char buf[MAXDATELEN + 1];
406 appendStringInfo(
result,
"\"%s\"", buf);
411 char buf[MAXDATELEN + 1];
414 appendStringInfo(
result,
"\"%s\"", buf);
419 char buf[MAXDATELEN + 1];
422 appendStringInfo(
result,
"\"%s\"", buf);
427 outputstr = OidOutputFunctionCall(outfuncoid, val);
428 appendStringInfoString(
result, outputstr);
433 jsontext = DatumGetTextPP(OidFunctionCall1(outfuncoid, val));
434 outputstr = text_to_cstring(jsontext);
435 appendStringInfoString(
result, outputstr);
440 outputstr = OidOutputFunctionCall(outfuncoid, val);
441 escape_json(
result, outputstr);
char result[OUT_DOUBLE_BUFFER_SIZE]
static char * postgis_JsonEncodeDateTime(char *buf, Datum value, Oid typid)
static void composite_to_json(Datum composite, StringInfo result, bool use_line_feeds)
static void array_to_json_internal(Datum array, StringInfo result, bool use_line_feeds)