Hi All, Below example which I was execute query in postgres. The problem statement here, when I use upper case function by converting JSONB object has Null value, Then I getting below error. Please could fix it defect or why this behavior on postures,required clarification
Error message: SQL Error [22P02]: ERROR: invalid input syntax for type json Detail: Token "NULL" is invalid. Where: JSON data, line 1: ...E": "2018-01-10", "NAME": "TEST3"}, {"DATE": NULL...
CREATE TABLE logs(id serial, data JSONB); INSERT INTO logs VALUES (1, '[{"name":"test1","date":"2020-11-11"},{"name":"test2","date":"2018-01-10"}]'), (2, '[{"name":"test3","date":"2020-05-18"},{"name":"test4","date":"null"}]');
SELECT * FROM logs WHERE data @> '[{"date":null}]'; SELECT * FROM logs WHERE upper(data::text)::jsonb @> upper('[{"date":"2018-01-10"}]')::jsonb ; --Not working
The error and the example queries don't seem to match...
When you upper('{"date":null}'::text) you get the literal text: {"date":NULL}, which is not valid json; a JSON null "value" must be written in lowercase. You would find the same problem had you chosen a boolean field and written true/false as documented on the json data type page [1], Table 8.23, and the json standard [2]