[ https://issues.apache.org/jira/browse/ASTERIXDB-1762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15793875#comment-15793875 ]
Taewoo Kim edited comment on ASTERIXDB-1762 at 1/3/17 4:55 AM: --------------------------------------------------------------- My thought on two parts: AQLPlus.jj file: Clearly, it is cumbersome to maintain separate grammar file as we can see now - AQL.jj and AQLPlus.jj file are out of sync. The only different parts between AQL+ and AQL are meta variable, meta scope, and join clause. It may be better to remove AQLPlus.jj and integrate these parts to AQL.jj file. Since AQL+ grammar is never exposed to the user level so that compilation path will not be triggered by a user query. So, the interference is minimum on this. Expression To Plan Translator: Again, most parts of the AQLPlusExpressionToPlanTranslator is similar to that of AQLExpressionToPlanTranslator. For this, I need to investigate more. I will check whether we can integrate these two translator with minimal affect on the normal path. was (Author: wangsaeu): My thought on two parts: AQLPlus.jj file: Clearly, it is cumbersome to maintain separate grammar file as we can see now - AQL.jj and AQLPlus.jj file are out of sync. The only different parts between AQL+ and AQL are meta variable, meta scope, and join clause. It may better to remove AQLPlus.jj and integrate these parts to AQL.jj file. Since AQL+ grammar is never exposed to the user level so that compilation path will not be triggered by a user query. So, the interference is minimum on this. Expression To Plan Translator: Again, most parts of the AQLPlusExpressionToPlanTranslator is similar to that of AQLExpressionToPlanTranslator. For this, I need to investigate more. I will check whether we can integrate these two translator with minimal affect on the normal path. > AQL+ needs to be revised. > -------------------------- > > Key: ASTERIXDB-1762 > URL: https://issues.apache.org/jira/browse/ASTERIXDB-1762 > Project: Apache AsterixDB > Issue Type: Improvement > Reporter: Taewoo Kim > Assignee: Taewoo Kim > > AQL+ is a super set of AQL (two differences: meta-variable and meta-clause), > and is used to transform the given plan using a rewritten AQL+ statements. > Using AQL+ to construct AQL+ statements and translate it to expressions and a > plan, the sub plan of the given operator as well as the operator itself can > be transformed into a new plan. > Currently, AQL+ is not synced with AQL grammar. Actually, it only uses a > certain portion of AQL constructs in one rule - FuzzyJoinRule. Since AQL+ is > a super set of AQL and the concepts (meta-variable and meta-clause) of AQL+ > is not used by other AQL constructs, I think we can integrate AQL and AQL+. > 1) Integrate AQL and AQL+ > Then, we do not need to maintain separate grammar and ExpressionToPlan > Translator. And since normal AQL grammar doesn't interfere with AQL+ grammar > (we never expose the AQL+ grammar to the user level). Currently, FuzzyJoin > requires AQL+ functionality to build the transformed plan. Unless we want to > introduce the massive number of operators in hand in the plan, I think it's > better remove separate grammar and integrate it with AQL. -- This message was sent by Atlassian JIRA (v6.3.4#6332)