Re: BUG #8407: json_populate_record case sensitivity

From: Andres Freund <andres(at)2ndquadrant(dot)com>
To: george(dot)stragand(at)gmail(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #8407: json_populate_record case sensitivity
Date: 2013-08-29 23:11:38
Message-ID: 20130829231138.GG4283@awork2.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 2013-08-29 21:08:56 +0000, george(dot)stragand(at)gmail(dot)com wrote:
> The following bug has been logged on the website:
>
> Bug reference: 8407
> Logged by: Possible bug with json_populate_record?
> Email address: george(dot)stragand(at)gmail(dot)com
> PostgreSQL version: 9.3rc1
> Operating system: Ubuntu
> Description:
>
> Using PostgreSQL 9.3beta2.
>
>
> SELECT version();
>
>
> PostgreSQL 9.3beta2 on x86_64-unknown-linux-gnu, compiled by gcc
> (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
>
>
> The question is regarding json keys in uppercase. Here's a small example:
>
>
> create type testPop as (
> foobar int
> );
>
>
> This returns as expected:
>
>
> select * from json_populate_record(null::testPop, '{"foobar": 1}');
>
>
> Whereas this form, upper-cased version of foobar, returns an empty record.
>
>
> select * from json_populate_record(null::testPop, '{"FOOBAR": 1}');
>
>
> That could be working as designed, as 'foobar' != 'FOOBAR', and is
> completely acceptable.
>
>
> So, drop the type and recreate it with these statements:
>
>
> drop type testPop;
>
>
> create type testPop as (
> FOOBAR int
> );

Postgresql lowercases unquoted identifiers. Make that »"FOOBAR" int« and
it should work.

Greetings,

Andres Freund

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

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message maxim.boguk 2013-08-30 05:13:41 BUG #8408: Not exactly correct error messages for failed check in presence of dropped columns.
Previous Message Alvaro Herrera 2013-08-29 23:09:06 Re: BUG #8407: json_populate_record case sensitivity