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