Re: jsonb - jsonb operators

From: Glyn Astill <glynastill(at)yahoo(dot)co(dot)uk>
To: Merlin Moncure <mmoncure(at)gmail(dot)com>
Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: jsonb - jsonb operators
Date: 2016-01-15 15:20:48
Message-ID: 633980543.9089780.1452871248184.JavaMail.yahoo@mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

----- Original Message -----
> From: Merlin Moncure <mmoncure(at)gmail(dot)com>
> To: Glyn Astill <glynastill(at)yahoo(dot)co(dot)uk>
> Cc: "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
> Sent: Friday, 15 January 2016, 14:50
> Subject: Re: [HACKERS] jsonb - jsonb operators
>
> On Fri, Jan 15, 2016 at 7:43 AM, Glyn Astill <glynastill(at)yahoo(dot)co(dot)uk>
> wrote:
>> Hi all,
>>
>> I was just looking through the new jsonb operators in the 9.5 release, and
> was wondering if there's any future intention to add a delete operator that
> removes element/pair matches? I.e. some sort of top-level "jsonb -
> jsonb" operator, e.g.
>>
>>
>> # select '{"a":1, "b":2}'::jsonb -
> '{"b":2, "a":4}'::jsonb;
>> ?column?
>> ----------
>> {"a": 1}
>> (1 row)
>>
>> Or would this behaviour be classed as incorrect in some way?
>
> It makes sense for simple json objects in your contrived example.
>
> How would you define complex structures? What happens when the key
> matches but not the value?
>

I was thinking of operating on the top level only, if the value doesn't match the pair isn't removed.

For anything more complex you'd have to have more knowledge of the objects, so functions like jsonb_delete_path and jsonb_set make more sense.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2016-01-15 15:21:46 Re: Truncating/vacuuming relations on full tablespaces
Previous Message Robert Haas 2016-01-15 15:17:02 Re: Proposal: BSD Authentication support