Re: BUG #7620: array_to_json doesn't support heterogeneous arrays - Mailing list pgsql-bugs

From Greg Hazel
Subject Re: BUG #7620: array_to_json doesn't support heterogeneous arrays
Date
Msg-id 37596181-5838-4D77-A36D-6B4215F9DCE5@gmail.com
Whole thread Raw
In response to Re: BUG #7620: array_to_json doesn't support heterogeneous arrays  (Merlin Moncure <mmoncure@gmail.com>)
List pgsql-bugs
On Oct 23, 2012, at 6:17 PM, Merlin Moncure <mmoncure@gmail.com> wrote:

> On Tue, Oct 23, 2012 at 8:05 PM, Greg Hazel <ghazel@gmail.com> wrote:
>> On Oct 23, 2012, at 6:03 PM, Merlin Moncure <mmoncure@gmail.com> =
wrote:
>>=20
>>> On Tue, Oct 23, 2012 at 6:32 PM,  <ghazel@gmail.com> wrote:
>>>> The following bug has been logged on the website:
>>>>=20
>>>> Bug reference:      7620
>>>> Logged by:          Greg Hazel
>>>> Email address:      ghazel@gmail.com
>>>> PostgreSQL version: 9.2.1
>>>> Operating system:   Amazon Linux
>>>> Description:
>>>>=20
>>>> array_to_json(ARRAY['foo', 100, true]) complains because arrays =
can't have
>>>> mixed types, but json arrays can.
>>>>=20
>>>> So, it's not possible to form a heterogeneous json array, when this =
is often
>>>> desired.
>>>=20
>>> This is not really a bug because the feature is working as intended.
>>> Postgres arrays are homogonous so what you're asking really isn't
>>> possible.  You can though use row_to_json to work around:
>>>=20
>>> select row_to_json(row('foo', 100, true));
>>=20
>> That doesn't produce the same results.
>>=20
>> Call it a feature request or a bug report, the postgres json support =
fails to make the json I need.
>=20
> I didn't say that it did: what it does is return a javascript object
> which is only a very little bit different from an array.  For example,
> you can do jquery each() over either.  I guess if you had to have an
> array, you could do it like this:
>=20
> array_to_json(ARRAY['foo'::text, 100::text, true::text])

Still not exactly the same json, since 100 and true would be quoted =
strings. I'm not parsing it with jQuery, it's a client with type =
expectations.

-Greg

pgsql-bugs by date:

Previous
From: Greg Hazel
Date:
Subject: Re: BUG #7620: array_to_json doesn't support heterogeneous arrays
Next
From: Merlin Moncure
Date:
Subject: Re: Introducing floating point cast into filter drastically changes row estimate