On 02/06/2013 02:36 PM, Andrew Dunstan wrote:
>
> On 02/06/2013 02:24 PM, Merlin Moncure wrote:
>> On Wed, Feb 6, 2013 at 1:08 PM, David E. Wheeler
>> <david@justatheory.com> wrote:
>>> Hackers,
>>>
>>> While playing with Andrew’s JSON enhancements, I noticed this:
>>>
>>> david=# select * From json_each_as_text('{"baz": null}'::json);
>>> key | value
>>> -----+-------
>>> baz | null
>>>
>>> It is returning 'null'::text there, not NULL::text. I had expected
>>> the latter, because otherwise it's not possible to tell the
>>> difference between '{"foo": null}' and '{"foo": "null"}'.
>> IMO, this is bug in proposed implementation. json unquoted null
>> should not map to string 'null' but to SQL, casting behavior from
>> text as implemented looks correct. (only SQL null should produce json
>> null)
>>
>
>
> Probably. I'm on it.
>
Revised patch attached. The problem also existed with the get*_as_text
functions (and their operators). Some additional regression tests are
added to test these cases.
cheers
andrew