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