Search Postgresql Archives

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> shammat@xxxxxxx wrote:
> 
>> bryn@xxxxxxxxxxxx wrote:
>> 
>> Am I missing a use case where an object with a key-value pair with a JSON null value is meaningfully different from one where 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 to a 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.





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux