Re: BUG #9519: Allows storing scalar json, but fails when querying

From: Alf Kristian Støyle <alf(dot)kristian(at)gmail(dot)com>
To: Marko Tiikkaja <marko(at)joh(dot)to>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #9519: Allows storing scalar json, but fails when querying
Date: 2014-03-10 20:39:45
Message-ID: CA+tXr--Z7ap5mcaBVNKOi9NXd2MaZG9FO4t7cVj3cCMZjz+g6g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

If the JSON datatype accepts JSON values (not just objects), which I
supposed is a valid approach, then shouldn't the JSON query operators be
able to deal with that?

This is the "unfortunate" part:

*select data->>'foo' from jtest; => ERROR: cannot extract element from a
scalar*
So either, only accept JSON object (not simple JSON values), or make the
JSON query operators work with JSON values as well.

Having to add an extra check constraint here is not obvious, imho.

For the record, we are working around this problem, through a small hack.
Some other system is storing this kind of data in our database. We have
reported a bug with them to fix it.

This is not a big problem for us, but we love Postgres, so we thought we
should report this.

Cheers,
Alf

On 10 March 2014 20:52, Marko Tiikkaja <marko(at)joh(dot)to> wrote:

> On 3/10/14, 4:09 PM, alf(dot)kristian(at)gmail(dot)com wrote:
>
>> I think the insert should fail, since '1' is not valid JSON.
>>
>
> It's a valid "JSON value", it's just not an object. If you only want to
> store JSON objects in the table, consider using a CHECK constraint.
>
>
> Regards,
> Marko Tiikkaja
>

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message John R Pierce 2014-03-10 21:07:03 Re: BUG #9519: Allows storing scalar json, but fails when querying
Previous Message John R Pierce 2014-03-10 20:00:15 Re: BUG #9519: Allows storing scalar json, but fails when querying