436 Assert(!(key_scalar && is_null));
440 appendStringInfoString(
result,
"null");
450 (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
451 errmsg(
"key value must be scalar, not array, composite, or json")));
462 outputstr = DatumGetBool(val) ?
"true" :
"false";
464 escape_json(
result, outputstr);
466 appendStringInfoString(
result, outputstr);
469 outputstr = OidOutputFunctionCall(outfuncoid, val);
475 if (!key_scalar && IsValidJsonNumber(outputstr, strlen(outputstr)))
476 appendStringInfoString(
result, outputstr);
478 escape_json(
result, outputstr);
483 char buf[MAXDATELEN + 1];
486 appendStringInfo(
result,
"\"%s\"", buf);
491 char buf[MAXDATELEN + 1];
494 appendStringInfo(
result,
"\"%s\"", buf);
499 char buf[MAXDATELEN + 1];
502 appendStringInfo(
result,
"\"%s\"", buf);
507 outputstr = OidOutputFunctionCall(outfuncoid, val);
508 appendStringInfoString(
result, outputstr);
513 jsontext = DatumGetTextPP(OidFunctionCall1(outfuncoid, val));
514 outputstr = text_to_cstring(jsontext);
515 appendStringInfoString(
result, outputstr);
520 outputstr = OidOutputFunctionCall(outfuncoid, val);
521 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)