Обсуждение: BUG #13506: jsonb || operator does not work
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}'
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
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