Hi all,

There is a PR CALCITE-2791[1] from xuqianjin about adding a MySQL function 
JSON_TYPE[2], and I want to know what do you think about it.


JSON_TYPE is not a standard JSON function defined by SQL:2016. In MySQL the use 
of this function is to get the type of a JSON doc. The similar operator in 
Calcite 1.18.0 is "IS JSON (VALUE/SCALAR/OBJECT/ARRAY)", however sometimes 
JSON_TYPE can do more than it.

As for other non-standard JSON functions, I made a simple summary table about 
JSON support (mainly as functions) details of some of most important SQL 
implementations. you can open it via link 
https://docs.google.com/spreadsheets/d/1A6vrEEu3WK49dJ5mfaYeMLFvAy0JR9uoJsiaKhxUal4/edit#gid=0


And I suggest to introduce some JSON functions that is from MySQL and might be 
useful for Calcite but not supported, not Just JSON_TYPE:
1. JSON_INSERT / JSON_SET / JSON_REPLACE /JSON_REMOVE [3]
2. JSON_DEPTH / JSON_LENGTH / JSON_TYPE [4]
I think the PR[1] can be a good start.


Does anyone have thought about this? Looking forward to your reply.


[1] https://issues.apache.org/jira/browse/CALCITE-2791
[2] 
https://dev.mysql.com/doc/refman/8.0/en/json-attribute-functions.html#function_json-type
[3] https://dev.mysql.com/doc/refman/8.0/en/json-modification-functions.html
[4] https://dev.mysql.com/doc/refman/8.0/en/json-attribute-functions.html 

Reply via email to