Re: order de atributos jsonb

From: Francisco Olarte <folarte(at)peoplecall(dot)com>
To: Eduardo Arenas <edomax(at)gmail(dot)com>
Cc: Horacio Miranda <hmiranda(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: order de atributos jsonb
Date: 2019-04-09 09:00:08
Message-ID: CA+bJJbzVHq_ZKsSigWWYD0fFbUHTHN-BFKggvjHocrH_N5aCsg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Eduardo:

On Tue, Apr 9, 2019 at 9:54 AM Eduardo Arenas <edomax(at)gmail(dot)com> wrote:
> Horacio, mi duda está más bien con ppstgeesql, ya que en formato JSON los atributos están ordenados y al pasarlos a jsonb los atributos se ordenan en función del largo del texto del nombre de cada atributos, lo q me lleva a tener q trabajar con ambos formatos ya q necesito darle diferentes usos.

No se si te lo han comentado, pero JSON y JSONB no son lo mismo, uno
guarda un texto que se chequea que es json valido y admite ciertas
operaciones, pero sigue siendo un texto por dentro, y el otro guarda
logicamente un "documento" ( definido mas o menos como en json, un
string/numero/boolean/null/lista de documentos/diccionario de cadenas
a documentos ), con un formato propio ( que esta documentado por ahi
), que le permite construir mejores indices y operar mas rapido, ycuya
representacion de I/O es un texto. Pero le pasa como a los numeros,
que tu metes 1, 01, 001 y el sistema te devuelve siempre 1.

La cosa del orden que te devuelve probablemente tiene que ver con algo
que lei hace poco, como el jsonb se suele guardar comprimido por
razones diversas si pones los campos mas cortos al principio el acceso
medio es mas rapido en determinados casos ( porque tienes que
descomprimir y saltar menos cantidad de datos, vamos, lo mismo que el
scheduling por SJF ).

> Con respecto al estándar hl7 pese a que en la especificación dice que no es necesario tener los atributos ordenados, muchas soluciones de software no se adhieren 100% al estándar y no dependen de mi, es por eso q para algunos casos necesito el orden pero mi idea no era utilizar el doble de espacio en disco para almacenar esto.

Yo he tenido problemas de esos, y normalmente la solucion suele ser un
paso final por un template especifico ( porque los templates generan
lo que tu quieras ), que incluso puede ser generica. No se por donde
tengo un trozo de perl que le das un json y escribe los diccionarios
en un orden determinado, que lo uso mucho para depurar documentos, con
un template engine esa modificacion deberia ser facil. Vamos, que es
coger el json que te dan, pasarlo a la representacion interna que
quieras, que normalmente no tiene orden como la de postgres, y luego
templatizar eso.

Francisco Olarte.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Eduardo Arenas 2019-04-09 09:07:42 Re: order de atributos jsonb
Previous Message Eduardo Arenas 2019-04-09 07:54:19 Re: order de atributos jsonb