[ 
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)

Reply via email to