Re: Fwd: JSONB order? - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Fwd: JSONB order?
Date
Msg-id bee2374f-9005-20bc-22e4-8214cbde1627@aklaver.com
Whole thread Raw
In response to Fwd: JSONB order?  (Tony Shelver <tshelver@gmail.com>)
List pgsql-general
On 11/5/20 7:45 AM, Tony Shelver wrote:
> 
> 
> ---------- Forwarded message ---------
> From: *Tony Shelver* <tshelver@gmail.com <mailto:tshelver@gmail.com>>
> Date: Thu, 5 Nov 2020 at 17:45
> Subject: Re: JSONB order?
> To: Christophe Pettus <xof@thebuild.com <mailto:xof@thebuild.com>>
> 
> 
> 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@thebuild.com 
> <mailto:xof@thebuild.com>> wrote:
> 
> 
> 
>      > On Nov 5, 2020, at 07:34, Tony Shelver <tshelver@gmail.com
>     <mailto:tshelver@gmail.com>> 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@thebuild.com <mailto:xof@thebuild.com>
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



pgsql-general by date:

Previous
From: Raphaël Enrici
Date:
Subject: Diagnose memory leak in logical replication?
Next
From: Dmitry O Litvintsev
Date:
Subject: how to check that recovery is complete