Re: jsonb contains behaviour weirdness

From: Peter Geoghegan <pg(at)heroku(dot)com>
To: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Josh Berkus <josh(at)agliodbs(dot)com>, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>
Subject: Re: jsonb contains behaviour weirdness
Date: 2014-10-11 07:46:44
Message-ID: CAM3SWZQ18f9Dk0WeOmWCygrsqXJRP_BCYx7FR9T54Xa2ma_e_Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

This was never committed...

On Sat, Sep 13, 2014 at 4:31 PM, Peter Geoghegan <pg(at)heroku(dot)com> wrote:
> On Fri, Sep 12, 2014 at 6:40 AM, Alexander Korotkov
> <aekorotkov(at)gmail(dot)com> wrote:
>> It's likely that "JB_ROOT_COUNT(val) < JB_ROOT_COUNT(tmpl)" should be
>> checked only for objects, not arrays. Also, should JsonbDeepContains does
>> same fast check when it deals with nested objects?
>
> Attached patch implements something similar to what you describe here,
> fixing your example.
>
> I haven't added the optimization to JsonbDeepContains(). I think that
> if anything, we should remove the optimization entirely, which is what
> I've done -- an rhs "is it contained within?" value is hardly ever
> going to be an object that has more pairs than the object we're
> checking it is contained within. It's almost certainly going to have
> far fewer pairs. Apart from only applying to objects, that
> optimization just isn't an effective way of eliminating jsonb values
> from consideration quickly. I'd rather not bother at all, rather than
> having a complicated comment about why the optimization applies to
> objects and not arrays.

--
Peter Geoghegan

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2014-10-11 08:51:28 Re: Column Redaction
Previous Message Simon Riggs 2014-10-11 07:40:58 Re: Column Redaction