Re: making the backend's json parser work in frontend code

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: making the backend's json parser work in frontend code
Дата
Msg-id CAA8=A79rNM-Am1nYjG-yU8RT7BOV+JUa0L_VgrwF9H1Oqsartw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: making the backend's json parser work in frontend code  (Mark Dilger <mark.dilger@enterprisedb.com>)
Ответы Re: making the backend's json parser work in frontend code
Список pgsql-hackers
On Fri, Jan 24, 2020 at 7:35 AM Mark Dilger
<mark.dilger@enterprisedb.com> wrote:
>
>
> > On Jan 22, 2020, at 7:00 PM, Mark Dilger <mark.dilger@enterprisedb.com> wrote:
> >
> > I have this done in my local repo to the point that I can build frontend tools against the json parser that is now
insrc/common and also run all the check-world tests without failure.  I’m planning to post my work soon, possibly
tonightif I don’t run out of time, but more likely tomorrow. 
>
> Ok, I finished merging with Robert’s patches.  The attached follow his numbering, with my patches intended to by
appliedafter his. 
>
> I tried not to change his work too much, but I did a bit of refactoring in 0010, as explained in the commit comment.
>
> 0011 is just for verifying the linking works ok and the json parser can be invoked from a frontend tool without error
—I don’t really see the point in committing it. 
>
> I ran some benchmarks for json parsing in the backend both before and after these patches, with very slight changes
inruntime.  The setup for the benchmark creates an unlogged table with a single text column and loads rows of json
formattedtext: 
>
> CREATE UNLOGGED TABLE benchmark (
>     j text
> );
> COPY benchmark (j) FROM '/Users/mark.dilger/bench/json.csv’;
>
>
> FYI:
>
> wc ~/bench/json.csv
>      107 34465023 503364244 /Users/mark.dilger/bench/json.csv
>
> The benchmark itself casts the text column to jsonb, as follows:
>
> SELECT jsonb_typeof(j::jsonb) typ, COUNT(*) FROM benchmark GROUP BY typ;
>
> In summary, the times are:
>
>         pristine        patched
>         —————   —————
>         11.985  12.237
>         12.200  11.992
>         11.691  11.896
>         11.847  11.833
>         11.722  11.936
>

OK, nothing noticeable there.

"accept" is a common utility I've used in the past with parsers of
this kind, but inlining it seems perfectly reasonable.

I've reviewed these patches and Robert's, and they seem basically good to me.

But I don't think src/bin is the right place for the test program. I
assume we're not going to ship this program, so it really belongs in
src/test somewhere, I think. It should also have a TAP test.

cheers

andrew



--
Andrew Dunstan                https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Thomas Munro
Дата:
Сообщение: Re: Busted(?) optimization in ATAddForeignKeyConstraint
Следующее
От: Michael Paquier
Дата:
Сообщение: Re: doc: alter table references bogus table-specific plannerparameters