Hi Hongze, Qianjin,

I apologise fo the late response.

I still don't understand why it is problematic to create a separate
MySQLOperatorTable.
You can easily combine operator tables (using ChainedSqlOperatorTable for
instance) and pass them around to places were otherwise you would put a
single operator table (e.g., SqlValidator).
It is also easy to use multiple operator tables at a higher level using the
connection property FUN [1].

Best,
Stamatis

[1]
https://calcite.apache.org/apidocs/org/apache/calcite/config/CalciteConnectionProperty.html#FUN


Στις Παρ, 1 Φεβ 2019 στις 6:39 π.μ., ο/η ForwardXu <[email protected]> έγραψε:

> hi statmatis:
> It's also possible that we could do better in both ways, as Hongze Zhang
> said. One of the initial reasons I implemented json_type was to use it in
> flink as well. However, we know that flink is not open to support a dialect
> like mysql.
> best
> qianjin
>
>
>
>
> ------------------ 原始邮件 ------------------
> 发件人: "Hongze Zhang"<[email protected]>;
> 发送时间: 2019年2月1日(星期五) 中午1:09
> 收件人: "[email protected]"<[email protected]>;
>
> 主题: Re: Re: Integrating MySQL's JSON functions
>
>
>
> Hi Stamatis,
>
> Thanks for mentioning MySQLOperatorTable!
>
> I just read some code about the usage of OracleOperatorTable in Calcite,
> but I am now not strongly inclined to add MySQL's JSON functions to
> MySQLOperatorTable.
> MySQL's JSON functions are rarely conflict with what are from standard,
> and they extends the JSON ability of MySQL in many sides. I think it might
> be a good try to treat functions from both MySQL's and standard's as a
> whole JSON operator suite.
> Users may want to directly use any function they know, I think it is
> better to not to confuse them with the truth that what's in standard and
> what's not.
> For the conflict part like JSON_OBJECT(key , value) and JSON_OBJECT(key :
> value), I think we can just support both.
>
> What do you think?
>
>
>
> Hongze
>
> From: Stamatis Zampetakis
> Date: 2019-02-01 06:32
> To: dev
> Subject: Re: Integrating MySQL's JSON functions
> Nice document Hongze!
>
> Since the functions are only present in MySQL why not create a
> MySQLOperatorTable and put them there? I went over the discussion in
> CALCITE-2791 but I did not understand why it is preferable to put them in
> the SqlStdOperatorTable.
>
> Στις Πέμ, 31 Ιαν 2019 στις 10:51 μ.μ., ο/η Julian Hyde <[email protected]>
> έγραψε:
>
> > +1
> >
> > In the reference doc, let’s make it clear that these are in MySQL but not
> > in the standard. (Unlike some of their other extensions to standard SQL,
> > MySQL seem to have done a good job - they are well-designed and
> > well-documented.)
> >
> > > On Jan 31, 2019, at 10:20 AM, Hongze Zhang <[email protected]> wrote:
> > >
> > > 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