361 Assert(!(key_scalar && is_null));
365 appendStringInfoString(
result,
"null");
375 (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
376 errmsg(
"key value must be scalar, not array, composite, or json")));
387 outputstr = DatumGetBool(val) ?
"true" :
"false";
389 escape_json(
result, outputstr);
391 appendStringInfoString(
result, outputstr);
394 outputstr = OidOutputFunctionCall(outfuncoid, val);
400 if (!key_scalar && IsValidJsonNumber(outputstr, strlen(outputstr)))
401 appendStringInfoString(
result, outputstr);
403 escape_json(
result, outputstr);
408 char buf[MAXDATELEN + 1];
411 appendStringInfo(
result,
"\"%s\"", buf);
416 char buf[MAXDATELEN + 1];
419 appendStringInfo(
result,
"\"%s\"", buf);
424 char buf[MAXDATELEN + 1];
427 appendStringInfo(
result,
"\"%s\"", buf);
432 outputstr = OidOutputFunctionCall(outfuncoid, val);
433 appendStringInfoString(
result, outputstr);
438 jsontext = DatumGetTextPP(OidFunctionCall1(outfuncoid, val));
439 outputstr = text_to_cstring(jsontext);
440 appendStringInfoString(
result, outputstr);
445 outputstr = OidOutputFunctionCall(outfuncoid, val);
446 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)