Andrew Dunstan <and...@dunslane.net> writes:
> On 08/29/2015 08:47 AM, Shulgin, Oleksandr wrote:
>> Given there were no loud complaints about this, the current behavior 
>> is appropriate for most users, the rest can still work around using 
>> coalesce(to_json(...), json 'null').

> I don't think it's necessarily more correct. But I do agree that it's 
> not a good idea to change the behaviour unless there is major 
> unhappiness with it.

I'm not entirely convinced that JSON NULL and SQL NULL should be treated
as the same concept, so I would say that the current behavior is fine ---
at least when you think about it in isolation.  However, haven't we
already bought into that equivalence in these examples?

regression=# select row_to_json(row(1,null,2));
        row_to_json        
---------------------------
 {"f1":1,"f2":null,"f3":2}
(1 row)

regression=# select array_to_json(array[1,null,2]);
 array_to_json 
---------------
 [1,null,2]
(1 row)

or even in to_json itself:

regression=# select to_json(array[1,null,2]);
  to_json   
------------
 [1,null,2]
(1 row)

The scalar case is definitely failing to be consistent with these.
Is consistency a sufficient reason to change it?

                        regards, tom lane


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to