[jira] [Commented] (IGNITE-6276) SQL: Investigate parser generators

2017-11-08 Thread Sergey Kalashnikov (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-6276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16244102#comment-16244102
 ] 

Sergey Kalashnikov commented on IGNITE-6276:


We have identified several shortcomings with the generated parser approach.
- Error messages generated by parser are not customizable enough to the point 
when user may easily understand them. I doubt a user will understand messages 
like 'no viable alternative'.
- The ANTLR lexer cannot be controlled by parser making many useful things 
impossible.
- The performance assesment results aren't really great in terms of scalability.

> SQL: Investigate parser generators
> --
>
> Key: IGNITE-6276
> URL: https://issues.apache.org/jira/browse/IGNITE-6276
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Sergey Kalashnikov
>Assignee: Sergey Kalashnikov
> Fix For: 2.4
>
> Attachments: antlr4-ignite.zip
>
>
> Now ignite relies on H2 for SQL processing. It has been discussed many times 
> on dev list that we must start introducing our own SQL core in small 
> incremental steps. 
> Let's start with analyzing the options for implementing the parser part.
> We may begin with http://www.antlr.org/ and create a simple separate project 
> that would generate the parser for some simple DDL commands like DROP INDEX.
> This will give us a hint on the complexity and limitations of the approach.
> 1) Set up Maven/ANTLR.
> 2) Prepare lexer/parser.
> 3) Generate.
> 4) Write a test.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (IGNITE-6276) SQL: Investigate parser generators

2017-09-08 Thread Vladimir Ozerov (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-6276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16158360#comment-16158360
 ] 

Vladimir Ozerov commented on IGNITE-6276:
-

[~skalashnikov], great result! 
Unfortunately, it adds new runtime dependency with BSD license, what could be a 
showstopper for this activity. I found interesting answer in StackOverflow [1]. 
May be experience of "StringTemplate" project could help us.

[1] 
https://stackoverflow.com/questions/8213005/can-i-remove-antlr-dependencies-from-generated-code/23011129#23011129

> SQL: Investigate parser generators
> --
>
> Key: IGNITE-6276
> URL: https://issues.apache.org/jira/browse/IGNITE-6276
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Sergey Kalashnikov
>Assignee: Sergey Kalashnikov
> Fix For: 2.3
>
> Attachments: antlr4-ignite.zip
>
>
> Now ignite relies on H2 for SQL processing. It has been discussed many times 
> on dev list that we must start introducing our own SQL core in small 
> incremental steps. 
> Let's start with analyzing the options for implementing the parser part.
> We may begin with http://www.antlr.org/ and create a simple separate project 
> that would generate the parser for some simple DDL commands like DROP INDEX.
> This will give us a hint on the complexity and limitations of the approach.
> 1) Set up Maven/ANTLR.
> 2) Prepare lexer/parser.
> 3) Generate.
> 4) Write a test.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (IGNITE-6276) SQL: Investigate parser generators

2017-09-08 Thread Sergey Kalashnikov (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-6276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16158313#comment-16158313
 ] 

Sergey Kalashnikov commented on IGNITE-6276:


Attached the archive with maven-based project that implements a parser for SQL 
drop index command and corresponding test.

> SQL: Investigate parser generators
> --
>
> Key: IGNITE-6276
> URL: https://issues.apache.org/jira/browse/IGNITE-6276
> Project: Ignite
>  Issue Type: Improvement
>  Components: sql
>Reporter: Sergey Kalashnikov
>Assignee: Sergey Kalashnikov
> Fix For: 2.3
>
> Attachments: antlr4-ignite.zip
>
>
> Now ignite relies on H2 for SQL processing. It has been discussed many times 
> on dev list that we must start introducing our own SQL core in small 
> incremental steps. 
> Let's start with analyzing the options for implementing the parser part.
> We may begin with http://www.antlr.org/ and create a simple separate project 
> that would generate the parser for some simple DDL commands like DROP INDEX.
> This will give us a hint on the complexity and limitations of the approach.
> 1) Set up Maven/ANTLR.
> 2) Prepare lexer/parser.
> 3) Generate.
> 4) Write a test.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)