BUG #16092: json[b]_to_recordset and json[b]_populate_record do not read properties with mixed-case names

From: PG Bug reporting form <noreply(at)postgresql(dot)org>
To: pgsql-bugs(at)lists(dot)postgresql(dot)org
Cc: dweinhardt78+pgsql-bugs(at)gmail(dot)com
Subject: BUG #16092: json[b]_to_recordset and json[b]_populate_record do not read properties with mixed-case names
Date: 2019-10-31 14:29:06
Message-ID: 16092-a31312333f90cf85@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 16092
Logged by: Dirk Weinhardt
Email address: dweinhardt78+pgsql-bugs(at)gmail(dot)com
PostgreSQL version: 11.5
Operating system: Alpine Linux
Description:

Using Docker container image postgres:11.5-alpine pulled on 2019-10-31
14:12:00 CET.

Given this fairly simple piece of JSON data: [{"aName": "foo"}]

When any of these queries is executed:
SELECT x.* FROM jsonb_to_recordset('[{"aName": "foo"}]'::jsonb) AS x(aName
text);
SELECT x.* FROM json_to_recordset('[{"aName": "foo"}]'::json) AS x(aName
text);
SELECT x.* FROM jsonb_to_recordset('[{"aname": "foo"}]'::jsonb) AS x(aname
text);
SELECT x.* FROM json_to_recordset('[{"aname": "foo"}]'::json) AS x(aname
text);

Then the output should be:
aname (text)
-----------------
foo

But for the first and the second query (the ones with mixed-case property
names) the actual output is:
aname (text)
-----------------
NULL

The same issue also exists with these queries:
DROP TYPE IF EXISTS x;
CREATE TYPE x AS (aName text);
SELECT x.* FROM jsonb_array_elements('[{"aName": "foo"}]'::jsonb) AS s,
jsonb_populate_record(NULL::x, s.value) AS x;
SELECT x.* FROM json_array_elements('[{"aName": "foo"}]'::json) AS s,
json_populate_record(NULL::x, s.value) AS x;

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tomas Vondra 2019-10-31 14:41:19 Re: a error happends when create a table in postgresql10.ubuntu 18.04
Previous Message ????? 2019-10-31 08:12:28 a error happends when create a table in postgresql10.ubuntu 18.04