PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Perché NULL non può essere convertito in null di JSON in postgreSQL?

to_json è contrassegnato come STRICT funzione, è medio - restituendo NULL quando qualsiasi parametro è NULL. Non sono sicuro che sia un'implementazione corretta, forse è un bug di PostgreSQL.

Aggiornamento:dopo la discussione sulla mailing list di Postgres, questo non è il bug, ma la caratteristica:la situazione non è un fatto semplice, quindi entrambe le lingue supportano NULL, ma il comportamento di NULL è leggermente diverso in ognuna di queste lingue. È difficile decidere se SQL NULL deve essere immediatamente trasformato in JSON NULL e perso un comportamento SQL immediatamente. Se hai bisogno di un comportamento diverso, puoi usare una funzione SQL:

CREATE OR REPLACE FUNCTION to_json2(anyelement)
RETURNS json AS $$
SELECT COALESCE(to_json($1), json 'null')
$$ LANGUAGE sql;