Re: jsonb_object() seems to be buggy. jsonb_build_object() is good.

From: Bryn Llewellyn <bryn(at)yugabyte(dot)com>
To: Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com>
Cc: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, Vik Fearing <vik(at)postgresfriends(dot)org>, pgsql-hackers list <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: jsonb_object() seems to be buggy. jsonb_build_object() is good.
Date: 2020-02-17 03:05:26
Message-ID: 6DD71055-396C-4A8D-8BA8-1A3B620BE7A6@yugabyte.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 16-Feb-2020, at 16:40, Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com> wrote:

On 2/16/20 7:25 PM, Bryn Llewellyn wrote:
>
> B.t.w., you earlier said “The double quotes [around “dog”] serve a specific purpose, to allow values containing commas to be treated as a single value (see syntax details for the exact rules) in the resulting array of text values.” But this test shows that they are not needed for that purpose:

I didn't say that. Someone else did.

>
> select jsonb_pretty(jsonb_object(
> '{a, 17, b, dog house, c, true}'::varchar[]
> ))
>
> This is the result:
>
> { +
> "a": "17", +
> "b": "dog house",+
> "c": "true" +
> }
>
> The commas are sufficient separators.
>
> It seems to me, therefore, that writing the double quotes gives the wrong message: they make it look like you are indeed specifying a text value rather than a numeric or integer value. But we know that the double quotes do *not* achieve this.
>

No, you haven't understood what they said. If the field value contains a
comma it needs to be quoted. But none of the fields in your example do.
If your field were "dog,house" instead of "dog house" it would need to
be quoted. This had nothing to do with json, BTW, it's simply from the
rules for array literals.

Bryn replied:

Got it! Thanks for helping me out, Andrew.

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Kasahara Tatsuhito 2020-02-17 03:43:41 Re: small improvement of the elapsed time for truncating heap in vacuum
Previous Message Tatsuo Ishii 2020-02-17 02:37:10 Re: Conflict handling for COPY FROM