Re: '{"x": 42, "y": null}'::jsonb != '{"x": 42}'::jsonb ... Really?

Поиск
Список
Период
Сортировка
От Bryn Llewellyn
Тема Re: '{"x": 42, "y": null}'::jsonb != '{"x": 42}'::jsonb ... Really?
Дата
Msg-id 7E6C88FF-F2FB-4C19-89CF-686E919AC1F7@yugabyte.com
обсуждение исходный текст
Ответ на Re: '{"x": 42, "y": null}'::jsonb != '{"x": 42}'::jsonb ... Really?  (Thomas Kellerer <shammat@gmx.net>)
Список pgsql-general
> shammat@gmx.net wrote:
>
>> bryn@yugabyte.com wrote:
>>
>> Am I missing a use case where an object with a key-value pair with a JSON null value is meaningfully different from
onewhere the key is simply absent? 
>
> It seems the JSON specification doesn't actually define equality. But the JSON patch RFC 6902:
>
> www.rfc-editor.org/rfc/rfc6902#section-4.6
>
> defines the equality of two objects as:
>
> «
> objects: are considered equal if they contain the same number of members, and if each member can be considered equal
toa member in the other object, by comparing their keys (as strings) and their values (using this list of type-specific
rules)
> »
>
> As {"x": 42, "y": null} and {"x": 42} do not contain the same number of members, I think Postgres' behaviour is
correct.

Thanks. I believe that I addressed this in a separate branch in this thread. The distinction (between « "some key":
null» and "some key" absent), which by all means matters in some contexts, does not matter w.r.t. the requirements of
my(demo) app. And I've now proved (to myself, at least) that I can meet my goal easily with existing Postgres
features—especially"jsonb_strip_nulls()". 

I hope that this means that we're all happy.


В списке pgsql-general по дате отправления:

Предыдущее
От: "David G. Johnston"
Дата:
Сообщение: Re: Outer joins and NULLs (old subject "ERROR: failed to find conversion function from key_vals_nn to record[]")
Следующее
От: Wen Yi
Дата:
Сообщение: A error happend when I am clone the git repository