PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Por que NULL não pode ser convertido em null do JSON no postgreSQL?


to_json está marcado como STRICT função, é média - retornando NULL quando qualquer parâmetro é NULL. Não tenho certeza se é a implementação correta, talvez seja um bug do PostgreSQL.

Atualização:Após discussão na lista de discussão do Postgres, este não é o bug, mas o recurso - a situação não é simples devido ao fato, então ambas as linguagens suportam NULL, mas o comportamento de NULL é um pouco diferente em qualquer uma dessas linguagens. É difícil decidir se SQL NULL deve ser imediatamente transformado em JSON NULL e perder um comportamento SQL imediatamente. Se você precisar de um comportamento diferente, poderá usar uma função SQL:
CREATE OR REPLACE FUNCTION to_json2(anyelement)
RETURNS json AS $$
SELECT COALESCE(to_json($1), json 'null')
$$ LANGUAGE sql;