[jira] [Commented] (IGNITE-6276) SQL: Investigate parser generators
[ 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
[ 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
[ 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)