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!!!!