Thanks for the review. I have most of these changes sorted out. Is there any good resource for the SQL standard aside from purchasing a copy of the standard itself. If not, do you think that this is something the ASF would be willing to do? Assuming it could be shared between projects, I think there are many who would benefit from this.
-- Michael Mior mm...@uwaterloo.ca 2018-04-18 21:31 GMT-04:00 Julian Hyde <jh...@apache.org>: > A couple of minor things. Your isJson function should return boolean not > Boolean, because the ISJSON function is strict - i.e. returns unknown if > and only if its input is null. If the input is null the code generator will > not call it. > > I think SqlIsJsonFunction is probably not necessary. I think everything > about the function can be deduced by reflection. (That’s how the Geo > functions work, also.) > > I’d add tests for JSON functions to SqlOperatorBaseTest rather than > creating CalciteJsonOperatorTest and JsonOperatorBaseTest. JSON functions > are not that different from the built-in function set. (The Geo functions > are not in the SQL standard; that’s why I separated them a bit.) > > Julian > > > > On Apr 18, 2018, at 5:59 PM, Michael Mior <mm...@uwaterloo.ca> wrote: > > > > Thanks Julian! I opened CALCITE-2266 to track implementing some of the > new > > JSON functions. I took a stab at implementing ISJSON in the following > > commit: > > > > https://github.com/michaelmior/calcite/commit/ > d6930fcd04ed83d37f56a7795ee794 > > 1b521fb99c > > > > These are touching parts of the code base I'm unfamiliar with so I mostly > > don't know what I'm doing :) I added a new operator table which I'm > > guessing we probably don't want to do but it made it easier for me when > > testing to isolate the new code. > > > > -- > > Michael Mior > > mm...@uwaterloo.ca > > > > 2018-04-18 17:00 GMT-04:00 Julian Hyde <jh...@apache.org>: > > > >> Somehow I missed it, but a new version of the SQL standard was released > in > >> December 2016. Here is wikipedia’s description of the new features: > >> > >>> SQL:2016 introduced 44 new optional features. 22 of them belong > >>> to the JSON functionality, ten more are related to polymorphic table > >>> functions. The additions to the standard include: > >>> > >>> * JSON: Functions to create JSON documents, to access parts of > >>> JSON documents and to check whether a string contains valid > >>> JSON data > >>> * Row Pattern Recognition: Matching a sequence of rows against > >>> a regular expression pattern > >>> * Date and time formatting and parsing > >>> * LISTAGG: A function to transform values from a group of rows into a > >>> delimited string > >>> * Polymorphic table functions: table functions without predefined > return > >> type > >>> * New data type DECFLOAT > >> > >> Nothing earth-shattering, but some good stuff there. DECFLOAT makes a > lot > >> of sense — businesses hate the kind of rounding errors that binary > floating > >> point introduces, and DECFLOAT would seem to map directly to java’s > >> BigDecimal. > >> > >> And MATCH_RECOGNIZE, which we have already started work on. > >> > >> Julian > >> > >> > >