Problema al dar de alta valor vació en JSON

From: RODRIGUEZ CORTES MARIO IGNACIO <IGNACIO(dot)CORTES(at)inegi(dot)org(dot)mx>
To: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Problema al dar de alta valor vació en JSON
Date: 2017-11-15 20:54:38
Message-ID: 1510779247.2563.12.camel@inegi.org.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenas tardes a todos:

Tengo un problema con un registro en una tabla de tipo jsonb, estoy
tratando de cambiar el valor de un atributo a null pero me deja todo el
contenido en null y no solo el valor, les muestro un ejemplo primero de
como definir el atributo null:

prueba=# select jsonb_build_object('v', null);
 jsonb_build_object 
--------------------
 {"v": null}
(1 fila)

asi esta bien definido el objeto, luego al tratar de cambiar el valor
con jsonb_set con algún valor de tipo jsonb, lo hace de forma correcta:

prueba=# select jsonb_set('{"v" : 0}'::jsonb, '{"v"}', to_jsonb(1));
 jsonb_set 
-----------
 {"v": 1}
(1 fila)

pero si intento poner el valor de "v" en null al parecer hay conflicto:

prueba=# select jsonb_set('{"v" : 0}'::jsonb, '{"v"}', to_jsonb(null));
ERROR:  no se pudo determinar el tipo polimórfico porque el tipo de
entrada es «unknown»

o bien casteando el null como si fuera de tipo texto

prueba=# select jsonb_set('{"v" : 0}'::jsonb, '{"v"}',
to_jsonb(null::text));
 jsonb_set 
-----------
 
(1 fila)

deja todo el registro en null, cuando yo esperaría que lo dejara con el
valor: {"v": null}

Les agradezco su ayuda!!!!

Saludos!!!!

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gilberto Castillo 2017-11-16 15:25:27 pgMail 1.4 Released!
Previous Message Hellmuth Vargas 2017-11-14 14:44:10 Re: Recorre select en memoria por cada registro de otra tabla