
Hi, Sergei! I pushed the patch to the feature branch for you to take a look. The patch you proposed http://lists.askmonty.org/pipermail/commits/2021-March/014492.html I liked and adapted with one exception. The nested paths list is built using the **last_sibling_hook instead of *cur_last_sibling. That seems to me nicer and doesn't produce that many repeating lines in the code. Best regards. HF On Thu, Mar 4, 2021 at 3:11 PM Sergey Petrunia <sergey@mariadb.com> wrote:
Hi Alexey,
Please find below final bits of input. After these are addressed the patch will probably be good to push (But I'll need a final pass before giving ok to push).
== json_table_mysql* tests ==
* Please remove one of the json_table_mysql and json_table_mysql2 tests. * Please move the remaining test to be in the same suite as json_table.test.
== Fix json_table.test ==
The test has this somewhere in the middle:
set optimizer_switch='firstmatch=off';
Please restore the original setting.
== ha_json_table::rnd_next() returns 0 on error ==
Consider this query:
select * from json_table( '[ {"name": "X"}, {"name2": "Y"} ]', '$[*]' columns ( col1 varchar(100) path '$.name2' error on empty )) as T;
The query produces an error. It happens like so:
* the call to ha_json_table::rnd_next() returns 0. * The SQL layer finds out about the error by checking thd->is_error() which returns true.
Please make ha_json_table::rnd_next() return an error.
== Rename table_function.* ==
Looking at the contets of sql/table_function.{h,cc}, one can see that there's very little code there that is applicable to generic table function. Almost all code is specifi to JSON_TABLE. Because of that, please rename the files to e.g. json_table.{h,cc}.
BR Sergei -- Sergei Petrunia, Software Developer MariaDB Corporation | Skype: sergefp | Blog: http://petrunia.net