to_json
ditandai sebagai STRICT
fungsi, itu berarti - mengembalikan NULL ketika parameter apa pun adalah NULL. Saya tidak yakin apakah ini implementasi yang benar, mungkin itu bug PostgreSQL.
Pembaruan:Setelah diskusi di milis Postgres, ini bukan bug, tetapi fitur - situasinya tidak sederhana, jadi kedua bahasa mendukung NULL, tetapi perilaku NULL sedikit berbeda dalam bahasa mana pun dari bahasa ini. Sulit untuk memutuskan apakah SQL NULL harus segera diubah menjadi JSON NULL dan segera kehilangan perilaku SQL. Jika Anda membutuhkan perilaku yang berbeda, Anda dapat menggunakan fungsi SQL:
CREATE OR REPLACE FUNCTION to_json2(anyelement)
RETURNS json AS $$
SELECT COALESCE(to_json($1), json 'null')
$$ LANGUAGE sql;