Re: BUG #11207: empty path will segfault jsonb #>

From: Peter Geoghegan <pg(at)heroku(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: justin(dot)vanwinkle(at)gmail(dot)com, Andrew Dunstan <andrew(at)dunslane(dot)net>, pgsql-bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #11207: empty path will segfault jsonb #>
Date: 2014-08-20 18:52:18
Message-ID: CAM3SWZT8kJFHFOa2V4dp-yR18=RgHJZf8aXMk=O3xd9++FFOew@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wed, Aug 20, 2014 at 11:08 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Is there a reason for these to behave inconsistently, and if not, which
> behavior should we standardize on? Considering that you get NULL not an
> error for extracting a nonexistent element from an object, I think there
> is some case to be made for saying that returning NULL is the more
> convenient behavior. Of course one can also argue for wanting this
> operator to throw errors if the JSON structure doesn't match the
> operation, but it seems like we've chosen to prefer being lax.

I discussed this very issue with Andrew during development (I think
that this happened to occur in private). My view was that since users
will frequently use -> within expression indexes, it's best to have it
return NULL for non-objects, rather than make them worry about the
case where it'll be rejected, which is rather contrary to the spirit
of jsonb (at least as a default behavior). Andrew argued it was
preferable to stick to the historic behavior of json operators. IMV,
we should have both operators return NULL. They should be consistent,
which implies changing the behavior of the existing json variants too,
but I don't think that's a big problem.

Note that the documentation briefly draws attention to this issue, in
a comment in the expression index example.

--
Peter Geoghegan

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2014-08-20 19:06:07 Re: BUG #11207: empty path will segfault jsonb #>
Previous Message Tom Lane 2014-08-20 18:08:17 Re: BUG #11207: empty path will segfault jsonb #>