diff --git a/src/backend/utils/adt/jsonb.c b/src/backend/utils/adt/jsonb.c index 8fef35ea38a..8b1cab488bb 100644 --- a/src/backend/utils/adt/jsonb.c +++ b/src/backend/utils/adt/jsonb.c @@ -455,8 +455,8 @@ JsonbToCStringWorker(StringInfo out, JsonbContainer *in, int estimated_len, bool { bool first = true; JsonbIterator *it; - JsonbIteratorToken type = WJB_DONE; JsonbValue v; + JsonbIteratorToken type = WJB_DONE; int level = 0; bool redo_switch = false; @@ -899,7 +899,6 @@ datum_to_jsonb(Datum val, bool is_null, JsonbInState *result, case JSONBTYPE_JSONB: { Jsonb *jsonb = DatumGetJsonb(val); - JsonbIteratorToken type; JsonbIterator *it; it = JsonbIteratorInit(&jsonb->root); @@ -913,6 +912,8 @@ datum_to_jsonb(Datum val, bool is_null, JsonbInState *result, } else { + JsonbIteratorToken type; + while ((type = JsonbIteratorNext(&it, &jb, false)) != WJB_DONE) { diff --git a/src/backend/utils/adt/jsonb_gin.c b/src/backend/utils/adt/jsonb_gin.c index 2591c81f3d6..204fb8b5919 100644 --- a/src/backend/utils/adt/jsonb_gin.c +++ b/src/backend/utils/adt/jsonb_gin.c @@ -70,8 +70,8 @@ gin_extract_jsonb(PG_FUNCTION_ARGS) int total = 2 * JB_ROOT_COUNT(jb); JsonbIterator *it; JsonbValue v; - int i = 0, - r; + JsonbIteratorToken r; + int i = 0; Datum *entries; /* If the root level is empty, we certainly have no keys */ @@ -333,10 +333,10 @@ gin_extract_jsonb_path(PG_FUNCTION_ARGS) int total = 2 * JB_ROOT_COUNT(jb); JsonbIterator *it; JsonbValue v; + JsonbIteratorToken r; PathHashStack tail; PathHashStack *stack; - int i = 0, - r; + int i = 0; Datum *entries; /* If the root level is empty, we certainly have no keys */ @@ -429,7 +429,7 @@ gin_extract_jsonb_path(PG_FUNCTION_ARGS) stack = parent; break; default: - elog(ERROR, "invalid JsonbIteratorNext rc: %d", r); + elog(ERROR, "invalid JsonbIteratorNext rc: %d", (int) r); } } diff --git a/src/backend/utils/adt/jsonb_op.c b/src/backend/utils/adt/jsonb_op.c index 0635d0818f4..74cf4fc7153 100644 --- a/src/backend/utils/adt/jsonb_op.c +++ b/src/backend/utils/adt/jsonb_op.c @@ -254,8 +254,8 @@ jsonb_hash(PG_FUNCTION_ARGS) { Jsonb *jb = PG_GETARG_JSONB(0); JsonbIterator *it; - int32 r; JsonbValue v; + JsonbIteratorToken r; uint32 hash = 0; if (JB_ROOT_COUNT(jb) == 0) @@ -283,7 +283,7 @@ jsonb_hash(PG_FUNCTION_ARGS) case WJB_END_OBJECT: break; default: - elog(ERROR, "invalid JsonbIteratorNext rc: %d", r); + elog(ERROR, "invalid JsonbIteratorNext rc: %d", (int) r); } } diff --git a/src/backend/utils/adt/jsonb_util.c b/src/backend/utils/adt/jsonb_util.c index 4d733159d06..c402eab22e6 100644 --- a/src/backend/utils/adt/jsonb_util.c +++ b/src/backend/utils/adt/jsonb_util.c @@ -187,7 +187,7 @@ compareJsonbContainers(JsonbContainer *a, JsonbContainer *b) { JsonbValue va, vb; - int ra, + JsonbIteratorToken ra, rb; ra = JsonbIteratorNext(&ita, &va, false); @@ -961,10 +961,10 @@ freeAndGetParent(JsonbIterator *it) bool JsonbDeepContains(JsonbIterator **val, JsonbIterator **mContained) { - uint32 rval, - rcont; JsonbValue vval, vcontained; + JsonbIteratorToken rval, + rcont; /* * Guard against stack overflow due to overly complex Jsonb. diff --git a/src/backend/utils/adt/jsonfuncs.c b/src/backend/utils/adt/jsonfuncs.c index f33864e619d..222acd7afb7 100644 --- a/src/backend/utils/adt/jsonfuncs.c +++ b/src/backend/utils/adt/jsonfuncs.c @@ -288,7 +288,7 @@ jsonb_object_keys(PG_FUNCTION_ARGS) bool skipNested = false; JsonbIterator *it; JsonbValue v; - int r; + JsonbIteratorToken r; if (JB_ROOT_IS_SCALAR(jb)) ereport(ERROR, @@ -1283,7 +1283,7 @@ get_jsonb_path_all(FunctionCallInfo fcinfo, bool as_text) if (jbvp->type == jbvBinary) { JsonbIterator *it = JsonbIteratorInit((JsonbContainer *) jbvp->val.binary.data); - int r; + JsonbIteratorToken r; r = JsonbIteratorNext(&it, &tv, true); container = (JsonbContainer *) jbvp->val.binary.data; @@ -1456,7 +1456,7 @@ each_worker_jsonb(FunctionCallInfo fcinfo, const char *funcname, bool as_text) bool skipNested = false; JsonbIterator *it; JsonbValue v; - int r; + JsonbIteratorToken r; if (!JB_ROOT_IS_OBJECT(jb)) ereport(ERROR, @@ -1775,7 +1775,7 @@ elements_worker_jsonb(FunctionCallInfo fcinfo, const char *funcname, bool skipNested = false; JsonbIterator *it; JsonbValue v; - int r; + JsonbIteratorToken r; if (JB_ROOT_IS_SCALAR(jb)) ereport(ERROR, @@ -2792,7 +2792,7 @@ populate_recordset_worker(FunctionCallInfo fcinfo, const char *funcname, JsonbIterator *it; JsonbValue v; bool skipNested = false; - int r; + JsonbIteratorToken r; Assert(jtype == JSONBOID); @@ -3230,9 +3230,9 @@ jsonb_strip_nulls(PG_FUNCTION_ARGS) JsonbIterator *it; JsonbParseState *parseState = NULL; JsonbValue *res = NULL; - int type; JsonbValue v, k; + JsonbIteratorToken type; bool last_was_key = false; if (JB_ROOT_IS_SCALAR(jb)) @@ -3290,8 +3290,8 @@ addJsonbToParseState(JsonbParseState **jbps, Jsonb *jb) { JsonbIterator *it; JsonbValue *o = &(*jbps)->contVal; - int type; JsonbValue v; + JsonbIteratorToken type; it = JsonbIteratorInit(&jb->root); @@ -3398,10 +3398,10 @@ jsonb_delete(PG_FUNCTION_ARGS) int keylen = VARSIZE_ANY_EXHDR(key); JsonbParseState *state = NULL; JsonbIterator *it; - uint32 r; JsonbValue v, *res = NULL; bool skipNested = false; + JsonbIteratorToken r; if (JB_ROOT_IS_SCALAR(in)) ereport(ERROR, @@ -3450,11 +3450,11 @@ jsonb_delete_idx(PG_FUNCTION_ARGS) int idx = PG_GETARG_INT32(1); JsonbParseState *state = NULL; JsonbIterator *it; - uint32 r, - i = 0, + uint32 i = 0, n; JsonbValue v, *res = NULL; + JsonbIteratorToken r; if (JB_ROOT_IS_SCALAR(in)) ereport(ERROR, @@ -3606,13 +3606,13 @@ static JsonbValue * IteratorConcat(JsonbIterator **it1, JsonbIterator **it2, JsonbParseState **state) { - uint32 r1, - r2, - rk1, - rk2; JsonbValue v1, v2, *res = NULL; + JsonbIteratorToken r1, + r2, + rk1, + rk2; r1 = rk1 = JsonbIteratorNext(it1, &v1, false); r2 = rk2 = JsonbIteratorNext(it2, &v2, false); @@ -3721,8 +3721,8 @@ setPath(JsonbIterator **it, Datum *path_elems, JsonbParseState **st, int level, Jsonb *newval, bool create) { JsonbValue v; + JsonbIteratorToken r; JsonbValue *res = NULL; - int r; check_stack_depth(); @@ -3793,7 +3793,7 @@ setPathObject(JsonbIterator **it, Datum *path_elems, bool *path_nulls, for (i = 0; i < npairs; i++) { - int r = JsonbIteratorNext(it, &k, true); + JsonbIteratorToken r = JsonbIteratorNext(it, &k, true); Assert(r == WJB_KEY); @@ -3914,7 +3914,7 @@ setPathArray(JsonbIterator **it, Datum *path_elems, bool *path_nulls, /* iterate over the array elements */ for (i = 0; i < nelems; i++) { - int r; + JsonbIteratorToken r; if (i == idx && level < path_len) {