From: Peter Geoghegan Date: Thu, 13 Mar 2014 09:53:25 +0000 (-0700) Subject: More dead code removal X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=c15076bca6e8e56f415ab816d3f019195a6b980c;p=users%2Fandresfreund%2Fpostgres.git More dead code removal --- diff --git a/src/backend/utils/adt/jsonb_op.c b/src/backend/utils/adt/jsonb_op.c index a9fc4f4925..82671fdcce 100644 --- a/src/backend/utils/adt/jsonb_op.c +++ b/src/backend/utils/adt/jsonb_op.c @@ -364,7 +364,7 @@ deepContains(JsonbIterator ** it1, JsonbIterator ** it2) } else if (v->type >= jbvNull && v->type < jbvArray) { - if (!compareJsonbValue(v, &v2)) + if (!compareJsonbScalarValue(v, &v2)) { res = false; break; diff --git a/src/backend/utils/adt/jsonb_support.c b/src/backend/utils/adt/jsonb_support.c index 67715a18d0..0df0ed1472 100644 --- a/src/backend/utils/adt/jsonb_support.c +++ b/src/backend/utils/adt/jsonb_support.c @@ -140,7 +140,7 @@ JsonbValueToJsonb(JsonbValue * v) } /* - * Are two JsonbValues a and b equal? + * Are two scalar JsonbValues a and b equal? * * Does not use lexical comparisons. Therefore, it is essentially that this * never be used for anything other than searching for values within a single @@ -150,10 +150,8 @@ JsonbValueToJsonb(JsonbValue * v) * this for sorting. This is just for "contains" style searching. */ bool -compareJsonbValue(JsonbValue * a, JsonbValue * b) +compareJsonbScalarValue(JsonbValue * a, JsonbValue * b) { - int i; - check_stack_depth(); if (a->type == b->type) @@ -170,33 +168,6 @@ compareJsonbValue(JsonbValue * a, JsonbValue * b) return DatumGetBool(DirectFunctionCall2(numeric_eq, PointerGetDatum(a->numeric), PointerGetDatum(b->numeric))); - case jbvArray: - if (a->array.nElems == b->array.nElems) - { - for (i = 0; i < a->array.nElems; i++) - if (compareJsonbValue(a->array.elems + i, - b->array.elems + i)) - return true; - } - break; - case jbvObject: - if (a->object.nPairs == b->object.nPairs) - { - for (i = 0; i < a->object.nPairs; i++) - { - if (lengthCompareJsonbStringValue(&a->object.pairs[i].key, - &b->object.pairs[i].key, - NULL) == 0) - return true; - if (compareJsonbValue(&a->object.pairs[i].value, - &b->object.pairs[i].value)) - return true; - } - } - break; - case jbvBinary: - /* This wastes a few cycles on unneeded lexical comparisons */ - return compareJsonbSuperHeaderValue(a->binary.data, b->binary.data) == 0; default: elog(ERROR, "invalid jsonb scalar type"); } diff --git a/src/include/utils/jsonb.h b/src/include/utils/jsonb.h index 112ef3a311..85cdd29111 100644 --- a/src/include/utils/jsonb.h +++ b/src/include/utils/jsonb.h @@ -277,7 +277,7 @@ extern Datum gin_consistent_jsonb_hash(PG_FUNCTION_ARGS); /* Support functions */ extern int compareJsonbSuperHeaderValue(JsonbSuperHeader a, JsonbSuperHeader b); -extern bool compareJsonbValue(JsonbValue *a, JsonbValue *b); +extern bool compareJsonbScalarValue(JsonbValue *a, JsonbValue *b); extern JsonbValue *findJsonbValueFromSuperHeaderLen(JsonbSuperHeader sheader, uint32 flags, uint32 *lowbound,