Attached 39th version of the patches rebased onto current master.
Regress tests fails on my comp - intel 64bit Linux, gcc 9.2.1
Comments:
* +<->/* Only XMLTABLE and JSON_TABLE are supported currently */
this comment has not sense more. Can be removed. Probably long time there will not be new format like XML or JSON
* there are new 600 lines to parse_clause.c, maybe this code can be placed in new file parse_jsontable.c ? parse_clause.c is pretty long already (json_table has very complex syntax)
*
+<->if (list_length(ci->passing.values) > 0)
+<->{
+<-><-->ListCell *exprlc;
+<-><-->ListCell *namelc;
+
It's uncommon usage of list_length function. More common is just "if (ci->passing.values) {}". Is there any reason for list_length?
* I tested some examples that I found on net. It works very well. Minor issues are white chars for json type. Probably json_table should to trim returned values, because after cutting from document, original white chars lost sense. It is not a problem jsonb type, that reduce white chars on input.
I did only simple tests and I didn't find any other issues than white chars problems for json type. I'll continue in some deeper tests. Please, prepare documentation. Without documentation there is not clean what features are supported. I have to do blind testing.
Regards
Pavel
--
Nikita Glukhov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company