Search Postgresql Archives

Re: Fwd: JSONB order?

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

 



On 11/5/20 7:45 AM, Tony Shelver wrote:


---------- Forwarded message ---------
From: *Tony Shelver* <tshelver@xxxxxxxxx <mailto:tshelver@xxxxxxxxx>>
Date: Thu, 5 Nov 2020 at 17:45
Subject: Re: JSONB order?
To: Christophe Pettus <xof@xxxxxxxxxxxx <mailto:xof@xxxxxxxxxxxx>>


Thanks Christophe, that's what I thought.
Just seemed weird that they were 'disordered' in exactly the same way every time.

Probably because that resolves to the most efficient way to store in jsonb for that particular record.


FYI, as of Python 3.7, dicts /_are_/ ordered.

By insertion order so updating a dict with a new item will add new key to end.


The problem is that we are possibly going to have many versions of these forms with slightly differing keys, which will be a pain to order in some hard coded way.



On Thu, 5 Nov 2020 at 17:40, Christophe Pettus <xof@xxxxxxxxxxxx <mailto:xof@xxxxxxxxxxxx>> wrote:



     > On Nov 5, 2020, at 07:34, Tony Shelver <tshelver@xxxxxxxxx
    <mailto:tshelver@xxxxxxxxx>> wrote:
     > But...  seen above, the order gets mixed up.
     >
     > Any ideas?

    JSON objects, like Python dicts, are not automatically ordered by
    key.  Once you move from the column space to the JSON object space,
    you can't rely on the object keys being in a consistent order.

    You'll want to have a step when ingesting the JSON object into a
    report that lines up the key values appropriately with the right
    presentation in the report.
    --
    -- Christophe Pettus
    xof@xxxxxxxxxxxx <mailto:xof@xxxxxxxxxxxx>



--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[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 Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux