PostgreSQL Source Code
git master
|
#include "postgres.h"
#include "access/htup_details.h"
#include "access/transam.h"
#include "catalog/pg_proc.h"
#include "catalog/pg_type.h"
#include "funcapi.h"
#include "libpq/pqformat.h"
#include "miscadmin.h"
#include "parser/parse_coerce.h"
#include "utils/builtins.h"
#include "utils/date.h"
#include "utils/datetime.h"
#include "utils/json.h"
#include "utils/jsonb.h"
#include "utils/jsonfuncs.h"
#include "utils/lsyscache.h"
#include "utils/syscache.h"
#include "utils/typcache.h"
Go to the source code of this file.
Data Structures | |
struct | JsonbInState |
struct | JsonbAggState |
Typedefs | |
typedef struct JsonbInState | JsonbInState |
typedef struct JsonbAggState | JsonbAggState |
typedef struct JsonbAggState JsonbAggState |
typedef struct JsonbInState JsonbInState |
|
static |
Definition at line 592 of file jsonb.c.
References appendBinaryStringInfo(), appendStringInfoCharMacro, and i.
Referenced by JsonbToCStringWorker().
|
static |
Definition at line 1095 of file jsonb.c.
References datum_to_jsonb(), ereport, errcode(), errmsg(), ERROR, InvalidOid, jsonb_categorize_type(), JSONBTYPE_NULL, and val.
Referenced by jsonb_build_array_worker(), and jsonb_build_object_worker().
|
static |
Definition at line 943 of file jsonb.c.
References Assert(), datum_to_jsonb(), i, JsonbInState::parseState, pushJsonbValue(), JsonbInState::res, WJB_BEGIN_ARRAY, and WJB_END_ARRAY.
Referenced by array_to_jsonb_internal().
|
static |
Definition at line 975 of file jsonb.c.
References ARR_DIMS, ARR_ELEMTYPE, ARR_NDIM, array_dim_to_jsonb(), ArrayGetNItems(), DatumGetArrayTypeP, deconstruct_array(), get_typlenbyvalalign(), jsonb_categorize_type(), JsonbInState::parseState, pfree(), pushJsonbValue(), JsonbInState::res, typalign, WJB_BEGIN_ARRAY, and WJB_END_ARRAY.
Referenced by datum_to_jsonb().
|
static |
Definition at line 2074 of file jsonb.c.
References elog, ereport, errcode(), errmsg(), ERROR, gettext_noop, i, jbvArray, jbvBinary, jbvBool, jbvNull, jbvNumeric, jbvObject, jbvString, lengthof, and generate_unaccent_rules::type.
Referenced by jsonb_bool(), jsonb_float4(), jsonb_float8(), jsonb_int2(), jsonb_int4(), jsonb_int8(), and jsonb_numeric().
|
static |
Definition at line 271 of file jsonb.c.
References ereport, errcode(), errdetail(), errmsg(), ERROR, JENTRY_OFFLENMASK, and len.
Referenced by datum_to_jsonb(), jsonb_in_object_field_start(), and jsonb_in_scalar().
|
static |
Definition at line 1539 of file jsonb.c.
References JsonbParseState::contVal, JsonbParseState::next, palloc(), JsonbParseState::size, JsonbParseState::skip_nulls, and JsonbParseState::unique_keys.
Referenced by jsonb_agg_finalfn(), and jsonb_object_agg_finalfn().
|
static |
Definition at line 1023 of file jsonb.c.
References attname, datum_to_jsonb(), DatumGetHeapTupleHeader, heap_getattr(), HeapTupleHeaderGetDatumLength, HeapTupleHeaderGetTypeId, HeapTupleHeaderGetTypMod, i, InvalidOid, jbvString, jsonb_categorize_type(), JSONBTYPE_NULL, lookup_rowtype_tupdesc(), NameStr, TupleDescData::natts, JsonbInState::parseState, pushJsonbValue(), ReleaseTupleDesc, JsonbInState::res, HeapTupleData::t_data, HeapTupleData::t_len, TupleDescAttr, JsonbValue::type, JsonbValue::val, val, WJB_BEGIN_OBJECT, WJB_END_OBJECT, and WJB_KEY.
Referenced by datum_to_jsonb().
|
static |
Definition at line 721 of file jsonb.c.
References JsonSemAction::array_end, JsonSemAction::array_start, array_to_jsonb_internal(), Assert(), check_stack_depth(), checkStringLen(), composite_to_jsonb(), JsonbParseState::contVal, CStringGetDatum, DatumGetBool, DatumGetJsonbP, DatumGetNumeric, DatumGetTextPP, DirectFunctionCall3, elog, ereport, errcode(), errmsg(), ERROR, Int32GetDatum, InvalidOid, JB_ROOT_IS_SCALAR, jbvArray, jbvBool, jbvNull, jbvNumeric, jbvObject, jbvString, jsonb_in_array_end(), jsonb_in_array_start(), jsonb_in_object_end(), jsonb_in_object_field_start(), jsonb_in_object_start(), jsonb_in_scalar(), JsonbIteratorInit(), JsonbIteratorNext(), JSONBTYPE_ARRAY, JSONBTYPE_BOOL, JSONBTYPE_COMPOSITE, JSONBTYPE_DATE, JSONBTYPE_JSON, JSONBTYPE_JSONB, JSONBTYPE_JSONCAST, JSONBTYPE_NUMERIC, JSONBTYPE_TIMESTAMP, JSONBTYPE_TIMESTAMPTZ, JsonEncodeDateTime(), makeJsonLexContext(), numeric_in(), JsonSemAction::object_end, JsonSemAction::object_field_start, JsonSemAction::object_start, ObjectIdGetDatum, OidFunctionCall1, OidOutputFunctionCall(), JsonbInState::parseState, pfree(), pg_parse_json_or_ereport(), pushJsonbValue(), JsonbInState::res, Jsonb::root, JsonSemAction::scalar, JsonSemAction::semstate, generate_unaccent_rules::type, JsonbValue::type, JsonbValue::val, val, WJB_BEGIN_ARRAY, WJB_BEGIN_OBJECT, WJB_DONE, WJB_ELEM, WJB_END_ARRAY, WJB_END_OBJECT, WJB_KEY, and WJB_VALUE.
Referenced by add_jsonb(), array_dim_to_jsonb(), composite_to_jsonb(), jsonb_agg_transfn_worker(), jsonb_object_agg_transfn_worker(), and to_jsonb_worker().
Datum jsonb_agg_finalfn | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1708 of file jsonb.c.
References AggCheckCallContext(), arg, Assert(), clone_parse_state(), JsonbValueToJsonb(), JsonbInState::parseState, PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, PG_RETURN_POINTER, pushJsonbValue(), JsonbInState::res, and WJB_END_ARRAY.
Datum jsonb_agg_strict_transfn | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1702 of file jsonb.c.
References jsonb_agg_transfn_worker().
Datum jsonb_agg_transfn | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1693 of file jsonb.c.
References jsonb_agg_transfn_worker().
|
static |
Definition at line 1569 of file jsonb.c.
References AggCheckCallContext(), buf, datum_to_jsonb(), DatumGetNumeric, DirectFunctionCall1, elog, ereport, errcode(), errmsg(), ERROR, FunctionCallInfoBaseData::flinfo, get_fn_expr_argtype(), InvalidOid, jbvNumeric, jbvString, jsonb_categorize_type(), JsonbIteratorInit(), JsonbIteratorNext(), JsonbValueToJsonb(), MemoryContextSwitchTo(), numeric_uplus(), NumericGetDatum, palloc(), palloc0(), JsonbInState::parseState, PG_ARGISNULL, PG_GETARG_DATUM, PG_GETARG_POINTER, PG_RETURN_POINTER, pushJsonbValue(), JsonbInState::res, Jsonb::root, snprintf, generate_unaccent_rules::type, JsonbValue::type, JsonbValue::val, val, WJB_BEGIN_ARRAY, WJB_BEGIN_OBJECT, WJB_DONE, WJB_ELEM, WJB_END_ARRAY, WJB_END_OBJECT, WJB_KEY, and WJB_VALUE.
Referenced by jsonb_agg_strict_transfn(), and jsonb_agg_transfn().
Datum jsonb_bool | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2104 of file jsonb.c.
References cannotCastJsonbValue(), jbvBool, JsonbExtractScalar(), PG_FREE_IF_COPY, PG_GETARG_JSONB_P, PG_RETURN_BOOL, Jsonb::root, JsonbValue::type, and JsonbValue::val.
Datum jsonb_build_array | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1298 of file jsonb.c.
References generate_unaccent_rules::args, extract_variadic_args(), jsonb_build_array_worker(), PG_RETURN_DATUM, PG_RETURN_NULL, and types.
Datum jsonb_build_array_noargs | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1319 of file jsonb.c.
References JsonbValueToJsonb(), JsonbInState::parseState, PG_RETURN_POINTER, pushJsonbValue(), JsonbInState::res, WJB_BEGIN_ARRAY, and WJB_END_ARRAY.
Datum jsonb_build_array_worker | ( | int | nargs, |
Datum * | args, | ||
bool * | nulls, | ||
Oid * | types, | ||
bool | absent_on_null | ||
) |
Definition at line 1271 of file jsonb.c.
References add_jsonb(), generate_unaccent_rules::args, i, JsonbPGetDatum, JsonbValueToJsonb(), JsonbInState::parseState, pushJsonbValue(), JsonbInState::res, types, WJB_BEGIN_ARRAY, and WJB_END_ARRAY.
Referenced by ExecEvalJsonConstructor(), and jsonb_build_array().
Datum jsonb_build_object | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1238 of file jsonb.c.
References generate_unaccent_rules::args, extract_variadic_args(), jsonb_build_object_worker(), PG_RETURN_DATUM, PG_RETURN_NULL, and types.
Datum jsonb_build_object_noargs | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1258 of file jsonb.c.
References JsonbValueToJsonb(), JsonbInState::parseState, PG_RETURN_POINTER, pushJsonbValue(), JsonbInState::res, WJB_BEGIN_OBJECT, and WJB_END_OBJECT.
Datum jsonb_build_object_worker | ( | int | nargs, |
Datum * | args, | ||
bool * | nulls, | ||
Oid * | types, | ||
bool | absent_on_null, | ||
bool | unique_keys | ||
) |
Definition at line 1186 of file jsonb.c.
References add_jsonb(), generate_unaccent_rules::args, ereport, errcode(), errhint(), errmsg(), ERROR, i, JsonbPGetDatum, JsonbValueToJsonb(), JsonbInState::parseState, pushJsonbValue(), JsonbInState::res, skip, JsonbParseState::skip_nulls, types, JsonbParseState::unique_keys, WJB_BEGIN_OBJECT, and WJB_END_OBJECT.
Referenced by ExecEvalJsonConstructor(), and jsonb_build_object().
void jsonb_categorize_type | ( | Oid | typoid, |
JsonbTypeCategory * | tcategory, | ||
Oid * | outfuncoid | ||
) |
Definition at line 613 of file jsonb.c.
References COERCION_EXPLICIT, COERCION_PATH_FUNC, find_coercion_pathway(), FirstNormalObjectId, get_element_type(), getBaseType(), getTypeOutputInfo(), InvalidOid, JSONBTYPE_ARRAY, JSONBTYPE_BOOL, JSONBTYPE_COMPOSITE, JSONBTYPE_DATE, JSONBTYPE_JSON, JSONBTYPE_JSONB, JSONBTYPE_JSONCAST, JSONBTYPE_NUMERIC, JSONBTYPE_OTHER, JSONBTYPE_TIMESTAMP, JSONBTYPE_TIMESTAMPTZ, OidIsValid, and type_is_rowtype().
Referenced by add_jsonb(), array_to_jsonb_internal(), composite_to_jsonb(), ExecInitExprRec(), jsonb_agg_transfn_worker(), jsonb_object_agg_transfn_worker(), to_jsonb(), and to_jsonb_is_immutable().
Datum jsonb_float4 | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2193 of file jsonb.c.
References cannotCastJsonbValue(), DirectFunctionCall1, jbvNumeric, JsonbExtractScalar(), numeric_float4(), NumericGetDatum, PG_FREE_IF_COPY, PG_GETARG_JSONB_P, PG_RETURN_DATUM, Jsonb::root, JsonbValue::type, and JsonbValue::val.
Datum jsonb_float8 | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2211 of file jsonb.c.
References cannotCastJsonbValue(), DirectFunctionCall1, jbvNumeric, JsonbExtractScalar(), numeric_float8(), NumericGetDatum, PG_FREE_IF_COPY, PG_GETARG_JSONB_P, PG_RETURN_DATUM, Jsonb::root, JsonbValue::type, and JsonbValue::val.
Definition at line 243 of file jsonb.c.
References JsonSemAction::array_end, JsonSemAction::array_start, GetDatabaseEncoding(), jsonb_in_array_end(), jsonb_in_array_start(), jsonb_in_object_end(), jsonb_in_object_field_start(), jsonb_in_object_start(), jsonb_in_scalar(), JsonbValueToJsonb(), len, makeJsonLexContextCstringLen(), JsonSemAction::object_end, JsonSemAction::object_field_start, JsonSemAction::object_start, pg_parse_json_or_ereport(), PG_RETURN_POINTER, JsonSemAction::scalar, and JsonSemAction::semstate.
Referenced by jsonb_from_text(), jsonb_in(), and jsonb_recv().
Definition at line 146 of file jsonb.c.
References jsonb_from_cstring(), VARDATA_ANY, and VARSIZE_ANY_EXHDR.
Referenced by ExecEvalJsonConstructor().
Datum jsonb_in | ( | PG_FUNCTION_ARGS | ) |
Definition at line 76 of file jsonb.c.
References jsonb_from_cstring(), and PG_GETARG_CSTRING.
Referenced by jsonb_set_lax(), and JsonItemFromDatum().
|
static |
Definition at line 309 of file jsonb.c.
References JsonbInState::parseState, pushJsonbValue(), JsonbInState::res, and WJB_END_ARRAY.
Referenced by datum_to_jsonb(), and jsonb_from_cstring().
|
static |
Definition at line 301 of file jsonb.c.
References JsonbInState::parseState, pushJsonbValue(), JsonbInState::res, and WJB_BEGIN_ARRAY.
Referenced by datum_to_jsonb(), and jsonb_from_cstring().
|
static |
Definition at line 293 of file jsonb.c.
References JsonbInState::parseState, pushJsonbValue(), JsonbInState::res, and WJB_END_OBJECT.
Referenced by datum_to_jsonb(), and jsonb_from_cstring().
|
static |
Definition at line 317 of file jsonb.c.
References Assert(), checkStringLen(), jbvString, JsonbInState::parseState, pushJsonbValue(), JsonbInState::res, JsonbValue::type, JsonbValue::val, and WJB_KEY.
Referenced by datum_to_jsonb(), and jsonb_from_cstring().
|
static |
Definition at line 284 of file jsonb.c.
References JsonbInState::parseState, pushJsonbValue(), JsonbInState::res, JsonbInState::unique_keys, JsonbParseState::unique_keys, and WJB_BEGIN_OBJECT.
Referenced by datum_to_jsonb(), and jsonb_from_cstring().
|
static |
Definition at line 361 of file jsonb.c.
References Assert(), checkStringLen(), JsonbParseState::contVal, CStringGetDatum, DatumGetNumeric, DirectFunctionCall3, elog, ERROR, Int32GetDatum, InvalidOid, jbvArray, jbvBool, jbvNull, jbvNumeric, jbvObject, jbvString, JSON_TOKEN_FALSE, JSON_TOKEN_NULL, JSON_TOKEN_NUMBER, JSON_TOKEN_STRING, JSON_TOKEN_TRUE, numeric_in(), ObjectIdGetDatum, JsonbInState::parseState, pushJsonbValue(), JsonbInState::res, JsonbValue::type, JsonbValue::val, WJB_BEGIN_ARRAY, WJB_ELEM, WJB_END_ARRAY, and WJB_VALUE.
Referenced by datum_to_jsonb(), and jsonb_from_cstring().
Datum jsonb_int2 | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2139 of file jsonb.c.
References cannotCastJsonbValue(), DirectFunctionCall1, jbvNumeric, JsonbExtractScalar(), numeric_int2(), NumericGetDatum, PG_FREE_IF_COPY, PG_GETARG_JSONB_P, PG_RETURN_DATUM, Jsonb::root, JsonbValue::type, and JsonbValue::val.
Datum jsonb_int4 | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2157 of file jsonb.c.
References cannotCastJsonbValue(), DirectFunctionCall1, jbvNumeric, JsonbExtractScalar(), numeric_int4(), NumericGetDatum, PG_FREE_IF_COPY, PG_GETARG_JSONB_P, PG_RETURN_DATUM, Jsonb::root, JsonbValue::type, and JsonbValue::val.
Datum jsonb_int8 | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2175 of file jsonb.c.
References cannotCastJsonbValue(), DirectFunctionCall1, jbvNumeric, JsonbExtractScalar(), numeric_int8(), NumericGetDatum, PG_FREE_IF_COPY, PG_GETARG_JSONB_P, PG_RETURN_DATUM, Jsonb::root, JsonbValue::type, and JsonbValue::val.
Datum jsonb_numeric | ( | PG_FUNCTION_ARGS | ) |
Definition at line 2118 of file jsonb.c.
References cannotCastJsonbValue(), DatumGetNumericCopy, jbvNumeric, JsonbExtractScalar(), NumericGetDatum, PG_FREE_IF_COPY, PG_GETARG_JSONB_P, PG_RETURN_NUMERIC, Jsonb::root, JsonbValue::type, and JsonbValue::val.
Datum jsonb_object | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1340 of file jsonb.c.
References ARR_DIMS, ARR_NDIM, deconstruct_array(), ereport, errcode(), errmsg(), ERROR, i, jbvNull, jbvString, JsonbValueToJsonb(), len, JsonbInState::parseState, pfree(), PG_GETARG_ARRAYTYPE_P, PG_RETURN_POINTER, pushJsonbValue(), JsonbInState::res, generate_unaccent_rules::str, TextDatumGetCString, JsonbValue::type, JsonbValue::val, WJB_BEGIN_OBJECT, WJB_END_OBJECT, WJB_KEY, and WJB_VALUE.
Datum jsonb_object_agg_finalfn | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1997 of file jsonb.c.
References AggCheckCallContext(), arg, Assert(), clone_parse_state(), JsonbValueToJsonb(), JsonbInState::parseState, PG_ARGISNULL, PG_GETARG_POINTER, PG_RETURN_NULL, PG_RETURN_POINTER, pushJsonbValue(), JsonbInState::res, and WJB_END_OBJECT.
Datum jsonb_object_agg_strict_transfn | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1973 of file jsonb.c.
References jsonb_object_agg_transfn_worker().
Datum jsonb_object_agg_transfn | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1963 of file jsonb.c.
References jsonb_object_agg_transfn_worker().
|
static |
Definition at line 1740 of file jsonb.c.
References AggCheckCallContext(), buf, datum_to_jsonb(), DatumGetNumeric, DirectFunctionCall1, elog, ereport, errcode(), errmsg(), ERROR, FunctionCallInfoBaseData::flinfo, get_fn_expr_argtype(), InvalidOid, jbvNull, jbvNumeric, jbvString, jsonb_categorize_type(), JsonbIteratorInit(), JsonbIteratorNext(), JsonbValueToJsonb(), MemoryContextSwitchTo(), numeric_uplus(), NumericGetDatum, palloc(), palloc0(), JsonbInState::parseState, PG_ARGISNULL, PG_GETARG_DATUM, PG_GETARG_POINTER, PG_RETURN_POINTER, pushJsonbValue(), JsonbInState::res, Jsonb::root, skip, JsonbParseState::skip_nulls, snprintf, generate_unaccent_rules::type, JsonbValue::type, JsonbParseState::unique_keys, JsonbValue::val, val, WJB_BEGIN_ARRAY, WJB_BEGIN_OBJECT, WJB_DONE, WJB_ELEM, WJB_END_ARRAY, WJB_END_OBJECT, WJB_KEY, and WJB_VALUE.
Referenced by jsonb_object_agg_strict_transfn(), jsonb_object_agg_transfn(), jsonb_object_agg_unique_strict_transfn(), and jsonb_object_agg_unique_transfn().
Datum jsonb_object_agg_unique_strict_transfn | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1991 of file jsonb.c.
References jsonb_object_agg_transfn_worker().
Datum jsonb_object_agg_unique_transfn | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1982 of file jsonb.c.
References jsonb_object_agg_transfn_worker().
Datum jsonb_object_two_arg | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1442 of file jsonb.c.
References ARR_NDIM, deconstruct_array(), ereport, errcode(), errmsg(), ERROR, i, jbvNull, jbvString, JsonbValueToJsonb(), len, JsonbInState::parseState, pfree(), PG_GETARG_ARRAYTYPE_P, PG_RETURN_POINTER, pushJsonbValue(), JsonbInState::res, generate_unaccent_rules::str, TextDatumGetCString, JsonbValue::type, JsonbValue::val, WJB_BEGIN_OBJECT, WJB_END_OBJECT, WJB_KEY, and WJB_VALUE.
Datum jsonb_out | ( | PG_FUNCTION_ARGS | ) |
Definition at line 111 of file jsonb.c.
References JsonbToCString(), PG_GETARG_JSONB_P, PG_RETURN_CSTRING, Jsonb::root, and VARSIZE.
|
static |
Definition at line 331 of file jsonb.c.
References appendBinaryStringInfo(), appendStringInfoString(), DatumGetCString, DirectFunctionCall1, elog, ERROR, escape_json(), jbvBool, jbvNull, jbvNumeric, jbvString, numeric_out(), pnstrdup(), PointerGetDatum, JsonbValue::type, and JsonbValue::val.
Referenced by JsonbToCStringWorker().
Datum jsonb_recv | ( | PG_FUNCTION_ARGS | ) |
Definition at line 92 of file jsonb.c.
References buf, elog, ERROR, jsonb_from_cstring(), PG_GETARG_POINTER, pq_getmsgint(), pq_getmsgtext(), and generate_unaccent_rules::str.
Datum jsonb_send | ( | PG_FUNCTION_ARGS | ) |
Definition at line 127 of file jsonb.c.
References buf, StringInfoData::data, JsonbToCString(), StringInfoData::len, makeStringInfo(), pfree(), PG_GETARG_JSONB_P, PG_RETURN_BYTEA_P, pq_begintypsend(), pq_endtypsend(), pq_sendint8(), pq_sendtext(), Jsonb::root, and VARSIZE.
Datum jsonb_typeof | ( | PG_FUNCTION_ARGS | ) |
Definition at line 227 of file jsonb.c.
References cstring_to_text(), JsonbContainerTypeName(), PG_GETARG_JSONB_P, PG_RETURN_TEXT_P, and Jsonb::root.
|
static |
Definition at line 157 of file jsonb.c.
References elog, ERROR, JsonbContainer::header, JsonbExtractScalar(), JsonbTypeName(), JsonContainerIsArray, and JsonContainerIsObject.
Referenced by jsonb_typeof(), and JsonbTypeName().
bool JsonbExtractScalar | ( | JsonbContainer * | jbc, |
JsonbValue * | res | ||
) |
Definition at line 2034 of file jsonb.c.
References Assert(), IsAJsonbScalar, jbvArray, jbvObject, JsonbIteratorInit(), JsonbIteratorNext(), JsonContainerIsArray, JsonContainerIsScalar, PG_USED_FOR_ASSERTS_ONLY, res, JsonbValue::val, WJB_BEGIN_ARRAY, WJB_DONE, WJB_ELEM, and WJB_END_ARRAY.
Referenced by ExecPrepareJsonItemCoercion(), executeJsonPath(), jsonb_bool(), jsonb_float4(), jsonb_float8(), jsonb_int2(), jsonb_int4(), jsonb_int8(), jsonb_numeric(), JsonbContainerTypeName(), JsonbUnquote(), JsonItemFromDatum(), and JsonPathValue().
Jsonb* JsonbMakeEmptyArray | ( | void | ) |
Definition at line 2232 of file jsonb.c.
References jbvArray, JsonbValueToJsonb(), JsonbValue::type, and JsonbValue::val.
Referenced by ExecEvalJsonBehavior().
Jsonb* JsonbMakeEmptyObject | ( | void | ) |
Definition at line 2248 of file jsonb.c.
References jbvObject, JsonbValueToJsonb(), JsonbValue::type, and JsonbValue::val.
Referenced by ExecEvalJsonBehavior().
char* JsonbToCString | ( | StringInfo | out, |
JsonbContainer * | in, | ||
int | estimated_len | ||
) |
Definition at line 450 of file jsonb.c.
References JsonbToCStringWorker().
Referenced by jsonb_get_element(), jsonb_out(), jsonb_send(), JsonbUnquote(), JsonbValueAsText(), and populate_scalar().
char* JsonbToCStringIndent | ( | StringInfo | out, |
JsonbContainer * | in, | ||
int | estimated_len | ||
) |
Definition at line 459 of file jsonb.c.
References JsonbToCStringWorker().
Referenced by jsonb_pretty().
|
static |
Definition at line 468 of file jsonb.c.
References add_indent(), appendBinaryStringInfo(), appendStringInfoCharMacro, Assert(), StringInfoData::data, elog, enlargeStringInfo(), ERROR, jsonb_put_escaped_value(), JsonbIteratorInit(), JsonbIteratorNext(), makeStringInfo(), generate_unaccent_rules::type, JsonbValue::val, WJB_BEGIN_ARRAY, WJB_BEGIN_OBJECT, WJB_DONE, WJB_ELEM, WJB_END_ARRAY, WJB_END_OBJECT, WJB_KEY, and WJB_VALUE.
Referenced by JsonbToCString(), and JsonbToCStringIndent().
const char* JsonbTypeName | ( | JsonbValue * | jbv | ) |
Definition at line 178 of file jsonb.c.
References elog, ERROR, jbvArray, jbvBinary, jbvBool, jbvDatetime, jbvNull, jbvNumeric, jbvObject, jbvString, JsonbContainerTypeName(), JsonbValue::type, and JsonbValue::val.
Referenced by executeItemOptUnwrapTarget(), and JsonbContainerTypeName().
char* JsonbUnquote | ( | Jsonb * | jb | ) |
Definition at line 2263 of file jsonb.c.
References DatumGetCString, DirectFunctionCall1, elog, ERROR, JB_ROOT_IS_SCALAR, jbvBool, jbvNull, jbvNumeric, jbvString, JsonbExtractScalar(), JsonbToCString(), numeric_out(), pnstrdup(), PointerGetDatum, pstrdup(), Jsonb::root, JsonbValue::type, JsonbValue::val, and VARSIZE.
Referenced by ExecEvalJsonExprCoercion().
Datum to_jsonb | ( | PG_FUNCTION_ARGS | ) |
Definition at line 1167 of file jsonb.c.
References ereport, errcode(), errmsg(), ERROR, get_fn_expr_argtype(), InvalidOid, jsonb_categorize_type(), PG_GETARG_DATUM, PG_RETURN_DATUM, to_jsonb_worker(), and val.
Definition at line 1131 of file jsonb.c.
References func_volatile(), jsonb_categorize_type(), JSONBTYPE_ARRAY, JSONBTYPE_BOOL, JSONBTYPE_COMPOSITE, JSONBTYPE_DATE, JSONBTYPE_JSON, JSONBTYPE_JSONB, JSONBTYPE_JSONCAST, JSONBTYPE_NUMERIC, JSONBTYPE_TIMESTAMP, and JSONBTYPE_TIMESTAMPTZ.
Referenced by contain_mutable_functions_walker().
Datum to_jsonb_worker | ( | Datum | val, |
JsonbTypeCategory | tcategory, | ||
Oid | outfuncoid | ||
) |
Definition at line 1119 of file jsonb.c.
References datum_to_jsonb(), JsonbPGetDatum, JsonbValueToJsonb(), JsonbInState::res, and val.
Referenced by ExecEvalJsonConstructor(), and to_jsonb().