You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Vladimir Ozerov <vo...@gridgain.com> on 2017/09/08 09:23:27 UTC

Add ANTLR dependency (BSD!) to Apache Ignite

Igniters,

We are evaluating ANTLR [1] as a parser generator for our SQL engine [2].
At first glance it looks very good, we already able to parse certain SQL
commands with it. If implemented, it would greatly improve usability of our
SQL engine. However, it goes under BSD license and require one small
runtime dependency "antlr-runtime" [3].

I need assistance form someone with greater experience with different
licences - is it fine to add this dependency to Ignite? Would it violate
ASF licensing rules?

AFAIK other ASF projects use it, e.g. Hive [4].

Vladimir.

[1] http://www.antlr.org/
[2] https://issues.apache.org/jira/browse/IGNITE-6276
[3] https://mvnrepository.com/artifact/org.antlr/antlr-runtime
[4] https://github.com/apache/hive/blob/master/ql/pom.xml#L165

Re: Add ANTLR dependency (BSD!) to Apache Ignite

Posted by Denis Magda <dm...@apache.org>.
Vladimir,

Yes, we can include the lib in our project. ANTLR is “BSD 3-clause license” [1] that is compliant with Apache 2.0 [2].

[1] https://github.com/antlr/antlr4/blob/master/LICENSE.txt <https://github.com/antlr/antlr4/blob/master/LICENSE.txt>
[2] https://www.apache.org/legal/resolved.html#category-a <https://www.apache.org/legal/resolved.html#category-a>

—
Denis

> On Sep 8, 2017, at 2:23 AM, Vladimir Ozerov <vo...@gridgain.com> wrote:
> 
> Igniters,
> 
> We are evaluating ANTLR [1] as a parser generator for our SQL engine [2].
> At first glance it looks very good, we already able to parse certain SQL
> commands with it. If implemented, it would greatly improve usability of our
> SQL engine. However, it goes under BSD license and require one small
> runtime dependency "antlr-runtime" [3].
> 
> I need assistance form someone with greater experience with different
> licences - is it fine to add this dependency to Ignite? Would it violate
> ASF licensing rules?
> 
> AFAIK other ASF projects use it, e.g. Hive [4].
> 
> Vladimir.
> 
> [1] http://www.antlr.org/
> [2] https://issues.apache.org/jira/browse/IGNITE-6276
> [3] https://mvnrepository.com/artifact/org.antlr/antlr-runtime
> [4] https://github.com/apache/hive/blob/master/ql/pom.xml#L165


Re: Add ANTLR dependency (BSD!) to Apache Ignite

Posted by Dmitriy Setrakyan <ds...@apache.org>.
Vova,

We need to start from performance evaluation before we integrate ANTLR into
our product. Otherwise, it will be hard to abandon it in future.

D.

On Sat, Sep 9, 2017 at 7:57 AM, Vladimir Ozerov <vo...@gridgain.com>
wrote:

> Dima,
>
> Manual parsing is too hard to implement. More precisely - too time
> consuming. ANTLR will let us add more and more grammar with minimal
> efforts.
>
> Immediate benefits for the project:
> 1) Nice CREATE TABLE syntax
> 2) Ability to add any administrative commands we want. E.g. "CLUSTER
> ACTIVATE", "CREATE CACHE".
>
> Long-term benefits:
> 1) Nice syntax all over our SQL (e.g. we will be able to tune single SELECT
> with hints, instead of current ugly flags on SqlFieldsQuery)
> 2) Nice and consistent error messages
> 3) Full control on what we support and what we don't
> 4) Removing dependency on H2
>
> Performance will be evaluated separately [1].
>
> [1] https://issues.apache.org/jira/plugins/servlet/mobile#
> issue/IGNITE-6320
>
>
>
> пт, 8 сент. 2017 г. в 21:01, Dmitriy Setrakyan <ds...@apache.org>:
>
> > Vova, license-wise it is OK, but I do not like adding the dependency.
> Right
> > now we have H2 doing parsing for us. Why would ANTLR be better? What
> > happens when we potentially notice a performance issue or any other issue
> > in ANTLR under load?
> >
> > Can we try doing parsing ourselves instead of adding a dependency?
> >
> > D.
> >
> > On Fri, Sep 8, 2017 at 2:23 AM, Vladimir Ozerov <vo...@gridgain.com>
> > wrote:
> >
> > > Igniters,
> > >
> > > We are evaluating ANTLR [1] as a parser generator for our SQL engine
> [2].
> > > At first glance it looks very good, we already able to parse certain
> SQL
> > > commands with it. If implemented, it would greatly improve usability of
> > our
> > > SQL engine. However, it goes under BSD license and require one small
> > > runtime dependency "antlr-runtime" [3].
> > >
> > > I need assistance form someone with greater experience with different
> > > licences - is it fine to add this dependency to Ignite? Would it
> violate
> > > ASF licensing rules?
> > >
> > > AFAIK other ASF projects use it, e.g. Hive [4].
> > >
> > > Vladimir.
> > >
> > > [1] http://www.antlr.org/
> > > [2] https://issues.apache.org/jira/browse/IGNITE-6276
> > > [3] https://mvnrepository.com/artifact/org.antlr/antlr-runtime
> > > [4] https://github.com/apache/hive/blob/master/ql/pom.xml#L165
> > >
> >
>

Re: Add ANTLR dependency (BSD!) to Apache Ignite

Posted by Vladimir Ozerov <vo...@gridgain.com>.
Dima,

Manual parsing is too hard to implement. More precisely - too time
consuming. ANTLR will let us add more and more grammar with minimal
efforts.

Immediate benefits for the project:
1) Nice CREATE TABLE syntax
2) Ability to add any administrative commands we want. E.g. "CLUSTER
ACTIVATE", "CREATE CACHE".

Long-term benefits:
1) Nice syntax all over our SQL (e.g. we will be able to tune single SELECT
with hints, instead of current ugly flags on SqlFieldsQuery)
2) Nice and consistent error messages
3) Full control on what we support and what we don't
4) Removing dependency on H2

Performance will be evaluated separately [1].

[1] https://issues.apache.org/jira/plugins/servlet/mobile#issue/IGNITE-6320



пт, 8 сент. 2017 г. в 21:01, Dmitriy Setrakyan <ds...@apache.org>:

> Vova, license-wise it is OK, but I do not like adding the dependency. Right
> now we have H2 doing parsing for us. Why would ANTLR be better? What
> happens when we potentially notice a performance issue or any other issue
> in ANTLR under load?
>
> Can we try doing parsing ourselves instead of adding a dependency?
>
> D.
>
> On Fri, Sep 8, 2017 at 2:23 AM, Vladimir Ozerov <vo...@gridgain.com>
> wrote:
>
> > Igniters,
> >
> > We are evaluating ANTLR [1] as a parser generator for our SQL engine [2].
> > At first glance it looks very good, we already able to parse certain SQL
> > commands with it. If implemented, it would greatly improve usability of
> our
> > SQL engine. However, it goes under BSD license and require one small
> > runtime dependency "antlr-runtime" [3].
> >
> > I need assistance form someone with greater experience with different
> > licences - is it fine to add this dependency to Ignite? Would it violate
> > ASF licensing rules?
> >
> > AFAIK other ASF projects use it, e.g. Hive [4].
> >
> > Vladimir.
> >
> > [1] http://www.antlr.org/
> > [2] https://issues.apache.org/jira/browse/IGNITE-6276
> > [3] https://mvnrepository.com/artifact/org.antlr/antlr-runtime
> > [4] https://github.com/apache/hive/blob/master/ql/pom.xml#L165
> >
>

Re: Add ANTLR dependency (BSD!) to Apache Ignite

Posted by Dmitriy Setrakyan <ds...@apache.org>.
Vova, license-wise it is OK, but I do not like adding the dependency. Right
now we have H2 doing parsing for us. Why would ANTLR be better? What
happens when we potentially notice a performance issue or any other issue
in ANTLR under load?

Can we try doing parsing ourselves instead of adding a dependency?

D.

On Fri, Sep 8, 2017 at 2:23 AM, Vladimir Ozerov <vo...@gridgain.com>
wrote:

> Igniters,
>
> We are evaluating ANTLR [1] as a parser generator for our SQL engine [2].
> At first glance it looks very good, we already able to parse certain SQL
> commands with it. If implemented, it would greatly improve usability of our
> SQL engine. However, it goes under BSD license and require one small
> runtime dependency "antlr-runtime" [3].
>
> I need assistance form someone with greater experience with different
> licences - is it fine to add this dependency to Ignite? Would it violate
> ASF licensing rules?
>
> AFAIK other ASF projects use it, e.g. Hive [4].
>
> Vladimir.
>
> [1] http://www.antlr.org/
> [2] https://issues.apache.org/jira/browse/IGNITE-6276
> [3] https://mvnrepository.com/artifact/org.antlr/antlr-runtime
> [4] https://github.com/apache/hive/blob/master/ql/pom.xml#L165
>