to_json
STRICT
. के रूप में चिह्नित है फ़ंक्शन, इसका मतलब है - जब कोई पैरामीटर न्यूल होता है तो न्यूल लौटाता है। मुझे यकीन नहीं है कि यह सही कार्यान्वयन है, शायद यह PostgreSQL बग है।
अद्यतन:पोस्टग्रेज़ की मेलिंग सूची पर चर्चा के बाद यह बग नहीं है, लेकिन सुविधा है - स्थिति सरल तथ्य नहीं है, इसलिए दोनों भाषाएं न्यूल का समर्थन करती हैं, लेकिन इन भाषाओं में से किसी में भी न्यूल का व्यवहार थोड़ा अलग है। यह तय करना कठिन है कि क्या SQL NULL को तुरंत JSON NULL में बदलना है और एक SQL व्यवहार को तुरंत खो देना है। यदि आपको भिन्न व्यवहार की आवश्यकता है, तो आप SQL फ़ंक्शन का उपयोग कर सकते हैं:
CREATE OR REPLACE FUNCTION to_json2(anyelement)
RETURNS json AS $$
SELECT COALESCE(to_json($1), json 'null')
$$ LANGUAGE sql;