From 7732d49ca211571552bf82b5207deed95c0cc09c Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Sun, 11 Oct 2015 23:53:35 -0400 Subject: [PATCH] Use JsonbIteratorToken consistently in automatic variable declarations. Many functions stored JsonbIteratorToken values in variables of other integer types. Also, standardize order relative to other declarations. Expect compilers to generate the same code before and after this change. --- src/backend/utils/adt/jsonb.c | 5 +++-- src/backend/utils/adt/jsonb_gin.c | 10 ++++----- src/backend/utils/adt/jsonb_op.c | 4 ++-- src/backend/utils/adt/jsonb_util.c | 6 +++--- src/backend/utils/adt/jsonfuncs.c | 34 +++++++++++++++--------------- 5 files changed, 30 insertions(+), 29 deletions(-) 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) {