Re: JSONB order? - Mailing list pgsql-general

From Rob Sargent
Subject Re: JSONB order?
Date
Msg-id BCF7B6B0-B8E3-4B63-A75F-3C423B16111A@gmail.com
Whole thread Raw
In response to Fwd: JSONB order?  (Tony Shelver <tshelver@gmail.com>)
Responses Re: JSONB order?  (Tony Shelver <tshelver@gmail.com>)
List pgsql-general


On Nov 5, 2020, at 8:45 AM, Tony Shelver <tshelver@gmail.com> wrote:



---------- Forwarded message ---------
From: Tony Shelver <tshelver@gmail.com>
Date: Thu, 5 Nov 2020 at 17:45
Subject: Re: JSONB order?
To: Christophe Pettus <xof@thebuild.com>


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

FYI, as of Python 3.7, dicts are ordered.

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> wrote:


> On Nov 5, 2020, at 07:34, Tony Shelver <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


Sounds like you’ll need a separate mechanism for maintaining versions of the forms and which headers represent the same data concept.  Always access data via canonical header translated to current form.


pgsql-general by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: JSONB order?
Next
From: Raphaël Enrici
Date:
Subject: Diagnose memory leak in logical replication?