Re: BUG #10728: json_to_recordset with nested json objects NULLs columns - Mailing list pgsql-bugs

From Michael Paquier
Subject Re: BUG #10728: json_to_recordset with nested json objects NULLs columns
Date
Msg-id CAB7nPqS0b=1DEKPWTQgzB0L3iV-ZQxTdffnqpc2Qp8_F1U2-6A@mail.gmail.com
Whole thread Raw
In response to Re: BUG #10728: json_to_recordset with nested json objects NULLs columns  (Michael Paquier <michael.paquier@gmail.com>)
Responses Re: BUG #10728: json_to_recordset with nested json objects NULLs columns  (Michael Paquier <michael.paquier@gmail.com>)
List pgsql-bugs
On Mon, Jun 23, 2014 at 2:13 PM, Michael Paquier <michael.paquier@gmail.com>
wrote:

> I am guessing that the bug origin is in pg_parse_json in the way nested
> json is managed, it is the only code path of populate_recordset_worker
> where a switch on JSON[B]OID is used.
>
Digging into that, I am seeing that the hash table used to find the field
values queried in populate_recordset_object_end in the hash table
(PopulateRecordsetState *)->json_hash has null entries for all the columns
inserted before the last nested json value. For example in my last example
with '[{"a":2,"b":3,"c":{"z":4}, "d":6}]', this results in having null
values for "a" and "b", "c" and "d" remaining correct.
populate_recordset_object_field_end inserts those values correctly within
the hash table though, so something strange is going on when inserting in
json_hash directly a json value.
--
Michael

pgsql-bugs by date:

Previous
From: Michael Paquier
Date:
Subject: Re: BUG #10728: json_to_recordset with nested json objects NULLs columns
Next
From: Sebastien FLAESCH
Date:
Subject: Re: BUG #10707: UPPER() does not convert non-ASCII chars