Re: BUG #13996: json_to_record() returns non-NULL, malformed value for omitted key under some circumstances

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: johann(at)visagie(dot)za(dot)net, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #13996: json_to_record() returns non-NULL, malformed value for omitted key under some circumstances
Date: 2016-03-03 03:48:19
Message-ID: 404.1456976899@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Andrew Dunstan <andrew(at)dunslane(dot)net> writes:
> On 03/02/2016 08:04 PM, Tom Lane wrote:
>> AFAICT this is a simple thinko in the hash_object_field_end() callback,
>> as per attached patch that fixes this and doesn't break any existing
>> regression test cases. Andrew, do you concur that this is correct,
>> or is there something I'm missing about the tracking of lex_level?

> Looks like you're right. lex_level is incremented at object/array start
> and decremented at object/array end. So keys of the outermost object
> will be at lex_level 1, and we shouldn't be using anything at a higher
> level. I guess we should add something like this as an extra regression
> test.

Yeah, I was going to adopt exactly this test case ...

regards, tom lane

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message woodman 2016-03-03 04:23:02 BUG #13997: does not work ILIKE + UTF8
Previous Message Andrew Dunstan 2016-03-03 03:00:28 Re: BUG #13996: json_to_record() returns non-NULL, malformed value for omitted key under some circumstances