Обсуждение: BUG #13506: jsonb || operator does not work

Поиск
Список
Период
Сортировка

BUG #13506: jsonb || operator does not work

От
gregoire.hubert@pragmafabrik.com
Дата:
The following bug has been logged on the website:

Bug reference:      13506
Logged by:          Grégoire HUBERT
Email address:      gregoire.hubert@pragmafabrik.com
PostgreSQL version: 9.5alpha1
Operating system:   debian jessie
Description:

select val->'a'||val->'c' from (values ($j${"a": {"b": 2}, "c": {"d":
3}}$j$::jsonb)) a (val);
┌──────────┐
│ ?column? │
├──────────┤
│ {"d": 3} │
└──────────┘
(1 row)

I think this should return '{"b": 2, "d": 3}'

Re: BUG #13506: jsonb || operator does not work

От
Tom Lane
Дата:
gregoire.hubert@pragmafabrik.com writes:
> select val->'a'||val->'c' from (values ($j${"a": {"b": 2}, "c": {"d":
> 3}}$j$::jsonb)) a (val);

You're making unwarranted assumptions about the precedence of those
operators.

(val->'a')||(val->'c') does what you expect.  Working out what the
expression does as-written is left as an exercise for the reader.

            regards, tom lane

Re: BUG #13506: jsonb || operator does not work

От
grégoire Hubert
Дата:
On Mon, Jul 20, 2015 at 7:44 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> gregoire.hubert@pragmafabrik.com writes:
>> select val->'a'||val->'c' from (values ($j${"a": {"b": 2}, "c": {"d":
>> 3}}$j$::jsonb)) a (val);
>
> You're making unwarranted assumptions about the precedence of those
> operators.
>
> (val->'a')||(val->'c') does what you expect.  Working out what the
> expression does as-written is left as an exercise for the reader.


Ok, I got it: select (val->'a')||(val->'c') from…

Thank you for taking the time to reply.

Regards,
--
Grégoire HUBERT
Tel: 06.60.15.49.80
PragmaFabrik
http://www.pragmafabrik.com