asterixdb-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yingyi Bu (Code Review)" <do-not-re...@asterixdb.incubator.apache.org>
Subject Change in asterixdb[master]: ASTERIXDB-1608, ASTERIXDB-1617 Match user query for nonpure ...
Date Fri, 09 Sep 2016 16:34:24 GMT
Yingyi Bu has posted comments on this change.

Change subject: ASTERIXDB-1608, ASTERIXDB-1617 Match user query for nonpure function calls
......................................................................


Patch Set 7:

(7 comments)

https://asterix-gerrit.ics.uci.edu/#/c/1057/7/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushFieldAccessRule.java
File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/PushFieldAccessRule.java:

Line 187:         Object annotation = op2.getAnnotations().get("isMovable");
call OperatorPropertiesUtil.isMovable(op2) instead?


https://asterix-gerrit.ics.uci.edu/#/c/1057/7/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java
File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java:

Line 314:             if (optFuncExpr.getNumConstantExpr() == 0) {
Can you explain a bit in the comments, why getNumConstantExpr() == 0 means a non-pure function.


Line 370:                 return new Pair<ILogicalExpression, Boolean>(optFuncExpr.getConstantExpr(0),
false);
> MAJOR SonarQube violation:
please address this.


https://asterix-gerrit.ics.uci.edu/#/c/1057/7/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java
File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java:

Line 728:             if (optFuncExpr.getFieldType(0) == null || optFuncExpr.getFieldType(1)
== null) {
Comment why this is the non-pure case? I still couldn't understand the condition.
Again, this condition has to be 100% accurate -- no false positives and no false dismissals.
Otherwise it might cause new bugs for other queries.


https://asterix-gerrit.ics.uci.edu/#/c/1057/7/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/OptimizableOperatorSubTree.java
File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/OptimizableOperatorSubTree.java:

Line 112:             while ((subTreeOp.getOperatorTag() == LogicalOperatorTag.ASSIGN
> MAJOR SonarQube violation:
pls address those.


https://asterix-gerrit.ics.uci.edu/#/c/1057/7/asterixdb/asterix-app/src/test/resources/optimizerts/queries/nonpure/maintain-nonpure-location-in-join-cannot-index.aql
File asterixdb/asterix-app/src/test/resources/optimizerts/queries/nonpure/maintain-nonpure-location-in-join-cannot-index.aql:

Line 39: return {
Why this one cannot use index?
Would it use the index of User2 if you say /*+ indexnl */ ?


https://asterix-gerrit.ics.uci.edu/#/c/1057/7/asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan
File asterixdb/asterix-app/src/test/resources/optimizerts/results/query_issue849.plan:

Line 28:                       -- UNNEST  |UNPARTITIONED|
ASTERIXDB-1368 is still open. But it seems your queries are able to use index joins even without
hints.  Did you fix ASTERIXDB-1368 as well?


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1057
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I2dec322b30835625430c06acd7626d902bada137
Gerrit-PatchSet: 7
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Steven Jacobs <sjaco002@ucr.edu>
Gerrit-Reviewer: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mblow@apache.org>
Gerrit-Reviewer: Preston Carman <prestonc@apache.org>
Gerrit-Reviewer: Steven Jacobs <sjaco002@ucr.edu>
Gerrit-Reviewer: Yingyi Bu <buyingyi@gmail.com>
Gerrit-HasComments: Yes

Mime
View raw message