Re: Add jsonb_compact(...) for whitespace-free jsonb to text
От | Oleksandr Shulgin |
---|---|
Тема | Re: Add jsonb_compact(...) for whitespace-free jsonb to text |
Дата | |
Msg-id | CACACo5Rkf3n3LnvB74FUB4nDNdUaGWeQG+e3=Go6gg2FjM9EiA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Add jsonb_compact(...) for whitespace-free jsonb to text (Andrew Dunstan <andrew@dunslane.net>) |
Список | pgsql-hackers |
On Mon, May 2, 2016 at 4:04 PM, Andrew Dunstan <andrew@dunslane.net> wrote:
On 05/02/2016 04:56 AM, Shulgin, Oleksandr wrote:On Sun, May 1, 2016 at 3:22 AM, Andrew Dunstan <andrew@dunslane.net <mailto:andrew@dunslane.net>> wrote:
On 04/29/2016 06:11 PM, Merlin Moncure wrote:
This is a simple matter of removing spaces in the occasional C
string
literal in the serialization routines and adding a json_pretty
function.
I spent a few hours on this. See
<https://bitbucket.org/adunstan/pgdevel/commits/branch/jsonformat>
for WIP - there are three commits. No regression tests yet for the
two new functions (json_squash and json_pretty), Otherwise fairly
complete. Removing whitespace generation was pretty simple for
both json and jsonb.
Looks good, thank you!
It would make sense IMO to rename FormatState's `indent' field as `pretty': it's being used to add whitespace between the punctuation, not only at start of a line. I'd also move the "if (indent)" check out of add_indent(): just don't call it if no indent is needed.
I'll try to play with the patch to produce some regression tests for the new functions.
It was done the way it was to be as consistent as possible with how it's done for jsonb (c.f. jsonb.c:JsonbToCStringWorker and jsonb.c::add_indent).
Ah, I see.
Simply taking regression tests for jsonb_pretty() and using them against json_pretty() revealed a bug with extra indent being added before every array/object start. Attached patch fixes that and adds the regression tests.
For json_squash() I've taken the same three test values, for lack of a better idea at the moment. At least we are testing key order stability and that no whitespace is spit out.
Regards,
--
Alex
Вложения
В списке pgsql-hackers по дате отправления: