On 28.03.2017 19:31, Dmitry Dolgov wrote:
On 28 March 2017 at 12:08, Dmitry Dolgov <9erthali...@gmail.com
<mailto:9erthali...@gmail.com>> wrote:

Wow, I didn't notice that, sorry - will fix it shortly.

So, here is the corrected version of the patch.

I have some picky comments.

I'm not sure that "typsbsparse" is better than "typsubscripting" or "typsubparse". Maybe "typsubsparse"?

      <row>
+      <entry><structfield>typsubscripting</structfield></entry>
+      <entry><type>regproc</type></entry>

Here you didn't fix "typsubscripting" to new name.

+  <title>JSON subscripting</title>
+  <para>
+   JSONB data type support array-style subscripting expressions to extract or 
update particular element. An example of subscripting syntax:

Should be "JSONB data type supports".

+  to handle subscripting expressions. It should contains logic for verification
+  and decide which function must be used for evaluation of this expression.
+  For instance:

Should be "It should contain".

+ <sect2 id="json-subscripting">
+  <title>JSON subscripting</title>
+  <para>
+   JSONB data type support array-style subscripting expressions to extract or 
update particular element. An example of subscripting syntax:

You have implemented jsonb subscripting. The documentation should be fixed to:

+ <sect2 id="jsonb-subscripting">
+  <title><type>jsonb</> Subscripting</title>
+  <para>
+ <type>jsonb</> data type support array-style subscripting expressions to extract or update particular element. An example of subscripting syntax:

I think IsOneOf() macros should be removed. Since it is not used anywhere.

+               Assert(subexpr != NULL);
+
+               if (subexpr == NULL)
+                       ereport(ERROR,
+                                       (errcode(ERRCODE_DATATYPE_MISMATCH),
+                                        errmsg("jsonb subscript does not support 
slices"),
+                                        parser_errposition(pstate, 
exprLocation(
+                                               ((Node *) 
lfirst(sbsref->refupperindexpr->head))))));

Here one of the conditions is excess. Better to delete assert condition I think.

I've tried tests from message [1]. They looks good. Performance looks similar for subscripting without patch and with patch.

I wanted to implement subscripting for ltree or hstore extensions. Subscripting for ltree looks more interesting. Especially with slicing. But I haven't done it yet. I hope that I will implement it tomorrow.

1. https://www.postgresql.org/message-id/CAKNkYnz_WWkzzxyFx934N%3DEp47CAFju-Rk-sGeZo0ui8QdrGmw%40mail.gmail.com

--
Arthur Zakirov
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to