Re: WIP Patch: Add a function that returns binary JSONB as a bytea
Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
From: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
To: Andres Freund <andres@anarazel.de>
Cc: Merlin Moncure <mmoncure@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>,
Stephen Frost <sfrost@snowman.net>, kevinvan@shift.com,
PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2018-11-02T22:15:25Z
Lists: pgsql-hackers
On 11/02/2018 05:20 PM, Andres Freund wrote: > Hi, > > On 2018-11-02 17:02:24 -0400, Andrew Dunstan wrote: >> On 11/02/2018 11:34 AM, Merlin Moncure wrote: >>> Binary format consuming applications already have to deal with these >>> kinds of issues. We already expose internal structures in the other >>> functions -- not sure why jsonb is held to a different standard. For >>> other data types where format changes were made, the standard of >>> 'caveat version' was in place to protect the user. For jsonb we >>> decided to implement a version flag within the type itself, which I >>> thought mistake at the time -- better to have a version header in the >>> COPY BINARY if needed. >>> >> >> jsonb_send does output a version header, as I pointed out upthread. > That's Merlin's point I think. For reasons I don't quite understand he > doesn't like that. Yes, a global solution would have been prettier than > per-datum version flag, but that obvioulsy wasn't realistic to introduce > around the feature freeze of the version that introduced jsonb. > > > Oh, hmm. It would have been a big change of little value, ISTM. One byte of overhead per jsonb datum for a version indicator doesn't seem a huge price to pay. cheers andtrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Build de-escaped JSON strings in larger chunks during lexing
- 3838fa269c15 16.0 landed