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