On Wed, Jan 01, 2020 at 01:43:40PM -0500, Robert Haas wrote:
> On Tue, Dec 31, 2019 at 9:16 PM David Steele <david@pgmasters.net> wrote:
> > > That said, I agree that there's no reason to come up with a bespoke
> > > format and parser when JSON is already available in every PostgreSQL
> > > installation. Imposing a structure atop that includes a version
> > > number, as you suggest, seems pretty straightforward, and should be
> > > done.
> >
> > +1. I continue to support a format that would be easily readable
> > without writing a lot of code.
>
> So, if someone can suggest to me how I could read JSON from a tool in
> src/bin without writing a lot of code, I'm all ears. So far that's
> been asserted but not been demonstrated to be possible. Getting the
> JSON parser that we have in the backend to work from frontend doesn't
> look all that straightforward, for reasons that I talked about in
> http://postgr.es/m/CA+TgmobZrNYR-ATtfZiZ_k-W7tSPgvmYZmyiqumQig4R4fkzHw@mail.gmail.com
Maybe I'm missing something obvious, but wouldn't combining
pg_read_file() with a cast to JSONB fix this, as below?
shackle@[local]:5413/postgres(13devel)(892328) # SELECT jsonb_pretty(j::jsonb) FROM
pg_read_file('/home/shackle/advanced_comparison.json')AS t(j);
jsonb_pretty
════════════════════════════════════
[ ↵
{ ↵
"message": "hello world!",↵
"severity": "[DEBUG]" ↵
}, ↵
{ ↵
"message": "boz", ↵
"severity": "[INFO]" ↵
}, ↵
{ ↵
"message": "foo", ↵
"severity": "[DEBUG]" ↵
}, ↵
{ ↵
"message": "null", ↵
"severity": "null" ↵
} ↵
]
(1 row)
Time: 3.050 ms
> As to the suggestion that a version number be included, that's been
> there in every version of the patch I've posted.
and thanks for that!
Best,
David.
--
David Fetter <david(at)fetter(dot)org> http://fetter.org/
Phone: +1 415 235 3778
Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate