Обсуждение: Ambiguous statement about order
The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/15/datatype-json.html Description: The following statement in the page doesn't speak about arrays which created some confusion with developers in our company: "By contrast, jsonb does not preserve white space, does not preserve the order of object keys, and does not keep duplicate object keys. If duplicate keys are specified in the input, only the last value is kept." The reason that caused confusion was some developers argued object keys include arrays. What added to the ambiguity is another line (a footnote): "For this purpose, the term “value” includes array elements, though JSON terminology sometimes considers array elements distinct from values within objects." I understand that it is only related to containment test. But it was causing confusion with others. I observed that arrays inside JSONB preserved order of insertion. An explicit line about whether the array order will be preserved or not would be helpful.
On Thursday, September 14, 2023, PG Doc comments form <noreply@postgresql.org> wrote:
I observed that arrays inside JSONB preserved order of insertion. An
explicit line about whether the array order will be preserved or not would
be helpful.
We don’t take on responsibility for teaching people what json is. Json arrays are slotted composite elements where the slots are numerically indexed. That, by definition, makes their contents “ordered”. The fact that object keys are unordered and that arrays can be object keys is immaterial to whether the contents of arrays are ordered.
David J.