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

From: Vik Fearing <vik(at)postgresfriends(dot)org>
To: Bryn Llewellyn <bryn(at)yugabyte(dot)com>, 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-15 02:28:07
Message-ID: d20e0613-4707-1b0f-2e16-10ed99dd44c9@postgresfriends.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 15/02/2020 03:21, Bryn Llewellyn wrote:
> Now execute this supposed functional equivalent:
>
> select jsonb_pretty(jsonb_object(
> '{a, 17, b, "dog", c, true}'::varchar[]
> ))
>
> It is meant to be a nice alternative when you want to build an object (rather than an array) because the syntax is less verbose.
>
> However, it gets the wrong answer, thus:
>
> { +
> "a": "17", +
> "b": "dog",+
> "c": "true"+
> }
>
> Now, the numeric value and the boolean value are double-quoted—in other words, they have been implicitly converted to JSON primitive text values.

They haven't been implicitly converted, you gave an array of varchars.
How should it know that you don't want texts?

> Do you agree that this is a bug?
No.
--
Vik Fearing

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2020-02-15 02:32:55 Re: [HACKERS] Moving relation extension locks out of heavyweight lock manager
Previous Message Bryn Llewellyn 2020-02-15 02:21:54 jsonb_object() seems to be buggy. jsonb_build_object() is good.