Re: BUG #8407: json_populate_record case sensitivity - Mailing list pgsql-bugs

From Andres Freund
Subject Re: BUG #8407: json_populate_record case sensitivity
Date
Msg-id 20130829231138.GG4283@awork2.anarazel.de
Whole thread Raw
In response to BUG #8407: json_populate_record case sensitivity  (george.stragand@gmail.com)
List pgsql-bugs
On 2013-08-29 21:08:56 +0000, george.stragand@gmail.com wrote:
> The following bug has been logged on the website:
>=20
> Bug reference:      8407
> Logged by:          Possible bug with json_populate_record?
> Email address:      george.stragand@gmail.com
> PostgreSQL version: 9.3rc1
> Operating system:   Ubuntu
> Description:       =20
>=20
> Using PostgreSQL 9.3beta2.
>=20
>=20
> SELECT version();
>=20
>=20
> PostgreSQL 9.3beta2 on x86_64-unknown-linux-gnu, compiled by gcc
> (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
>=20
>=20
> The question is regarding json keys in uppercase.  Here's a small examp=
le:
>=20
>=20
> create type testPop as (
>     foobar int
> );
>=20
>=20
> This returns as expected:
>=20
>=20
> select * from json_populate_record(null::testPop, '{"foobar": 1}');
>=20
>=20
> Whereas this form, upper-cased version of foobar, returns an empty reco=
rd.
>=20
>=20
> select * from json_populate_record(null::testPop, '{"FOOBAR": 1}');
>=20
>=20
> That could be working as designed, as 'foobar' !=3D 'FOOBAR', and is
> completely acceptable.=20
>=20
>=20
> So, drop the type and recreate it with these statements:
>=20
>=20
> drop type testPop;
>=20
>=20
> create type testPop as (
>     FOOBAR int
> );

Postgresql lowercases unquoted identifiers. Make that =BB"FOOBAR" int=AB =
and
it should work.

Greetings,

Andres Freund

--=20
 Andres Freund                       http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services

pgsql-bugs by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: BUG #8407: json_populate_record case sensitivity
Next
From: maxim.boguk@gmail.com
Date:
Subject: BUG #8408: Not exactly correct error messages for failed check in presence of dropped columns.