From: | Aleksander Alekseev <a(dot)alekseev(at)postgrespro(dot)ru> |
---|---|
To: | Michael Paquier <michael(dot)paquier(at)gmail(dot)com> |
Cc: | Nikita Glukhov <n(dot)gluhov(at)postgrespro(dot)ru>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: PATCH: recursive json_populate_record() |
Date: | 2016-12-27 13:15:41 |
Message-ID: | 20161227131541.GA6976@e733.localdomain |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hello.
I've noticed that this patch is on CF and needs a reviewer so I decided
to take a look. Code looks good to me in general, it's well covered by
tests and passes `make check-world`.
However it would be nice to have a little more comments. In my opinion
every procedure have to have at least a short description - what it
does, what arguments it receives and what it returns, even if it's a
static procedure. Same applies for structures and their fields.
Another thing that bothers me is a FIXME comment:
```
tupdesc = lookup_rowtype_tupdesc(type, typmod); /* FIXME cache */
```
I suggest remove it or implement a caching here as planned.
On Tue, Dec 13, 2016 at 10:07:46AM +0900, Michael Paquier wrote:
> On Tue, Dec 13, 2016 at 9:38 AM, Nikita Glukhov <n(dot)gluhov(at)postgrespro(dot)ru> wrote:
> > It also fixes the following errors/inconsistencies caused by lost quoting of
> > string json values:
> >
> > [master]=# select * from json_to_record('{"js": "a"}') as rec(js json);
> > ERROR: invalid input syntax for type json
> > DETAIL: Token "a" is invalid.
> > CONTEXT: JSON data, line 1: a
>
> The docs mention that this is based on a best effort now. It may be
> interesting to improve that.
>
> > [master]=# select * from json_to_record('{"js": "true"}') as rec(js json);
> > js
> > ------
> > true
> >
> > [patched]=# select * from json_to_record('{"js": "a"}') as rec(js json);
> > js
> > -----
> > "a"
>
> That's indeed valid JSON.
>
> > [patched]=# select * from json_to_record('{"js": "true"}') as rec(js json);
> > js
> > --------
> > "true"
>
> And so is that.
>
> > The second patch adds assignment of correct ndims to array fields of RECORD
> > function result types.
> > Without this patch, attndims in tuple descriptors of RECORD types is always
> > 0 and the corresponding assertion fails in the next test:
> >
> > [patched]=# select json_to_record('{"a": [1, 2, 3]}') as rec(a int[]);
> >
> >
> > Should I submit these patches to commitfest?
>
> It seems to me that it would be a good idea to add them.
> --
> Michael
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
--
Best regards,
Aleksander Alekseev
From | Date | Subject | |
---|---|---|---|
Next Message | Pavan Deolasee | 2016-12-27 13:21:48 | Re: Patch: Write Amplification Reduction Method (WARM) |
Previous Message | Ashutosh Bapat | 2016-12-27 13:03:11 | Re: postgres_fdw bug in 9.6 |