On Fri, Jun 12, 2015 at 12:26 PM, Andrew Dunstan <and...@dunslane.net> wrote: > Here's some code for the count piece of that.
Thanks. I'll look into integrating this with what I have. BTW, on reflection I'm not so sure about my decision to not touch the logic within jsonb_delete_idx() (commit b81c7b409). I probably should have changed it in line with the attached patch as part of that commit. What do you think? -- Peter Geoghegan
From 8232f360a0696eb9279c29dfa7464edde726c5ae Mon Sep 17 00:00:00 2001 From: Peter Geoghegan <peter.geoghega...@gmail.com> Date: Fri, 5 Jun 2015 13:55:48 -0700 Subject: [PATCH 1/2] Remove dead code for jsonb subscript deletion --- src/backend/utils/adt/jsonfuncs.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/backend/utils/adt/jsonfuncs.c b/src/backend/utils/adt/jsonfuncs.c index c14d3f7..3fb8327 100644 --- a/src/backend/utils/adt/jsonfuncs.c +++ b/src/backend/utils/adt/jsonfuncs.c @@ -3411,10 +3411,8 @@ jsonb_delete_idx(PG_FUNCTION_ARGS) it = JsonbIteratorInit(&in->root); r = JsonbIteratorNext(&it, &v, false); - if (r == WJB_BEGIN_ARRAY) - n = v.val.array.nElems; - else - n = v.val.object.nPairs; + Assert (r == WJB_BEGIN_ARRAY); + n = v.val.array.nElems; if (idx < 0) { @@ -3431,14 +3429,10 @@ jsonb_delete_idx(PG_FUNCTION_ARGS) while ((r = JsonbIteratorNext(&it, &v, true)) != 0) { - if (r == WJB_ELEM || r == WJB_KEY) + if (r == WJB_ELEM) { if (i++ == idx) - { - if (r == WJB_KEY) - JsonbIteratorNext(&it, &v, true); /* skip value */ continue; - } } res = pushJsonbValue(&state, r, r < WJB_BEGIN_ARRAY ? &v : NULL); -- 1.9.1
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers