to_json
er markeret som STRICT
funktion, er det middel - returnerer NULL, når en parameter er NULL. Jeg er ikke sikker på, om det er korrekt implementering, måske er det PostgreSQL-fejl.
Opdatering:Efter diskussion på Postgres' mailingliste er dette ikke fejlen, men funktionen - situationen er ikke enkel på grund af faktum, så begge sprog understøtter NULL, men opførselen af NULL er en smule anderledes på alle disse sprog. Det er svært at afgøre, om SQL NULL straks skal transformeres til JSON NULL og mistet en SQL-opfører sig med det samme. Hvis du har brug for anderledes opførsel, kan du bruge en SQL-funktion:
CREATE OR REPLACE FUNCTION to_json2(anyelement)
RETURNS json AS $$
SELECT COALESCE(to_json($1), json 'null')
$$ LANGUAGE sql;