asterixdb-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yingyi Bu (Code Review)" <>
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:

File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/

Line 187:         Object annotation = op2.getAnnotations().get("isMovable");
call OperatorPropertiesUtil.isMovable(op2) instead?
File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/

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),
> MAJOR SonarQube violation:
please address this.
File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/

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.
File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/

Line 112:             while ((subTreeOp.getOperatorTag() == LogicalOperatorTag.ASSIGN
> MAJOR SonarQube violation:
pls address those.
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 */ ?
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
To unsubscribe, visit

Gerrit-MessageType: comment
Gerrit-Change-Id: I2dec322b30835625430c06acd7626d902bada137
Gerrit-PatchSet: 7
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Steven Jacobs <>
Gerrit-Reviewer: Jenkins <>
Gerrit-Reviewer: Michael Blow <>
Gerrit-Reviewer: Preston Carman <>
Gerrit-Reviewer: Steven Jacobs <>
Gerrit-Reviewer: Yingyi Bu <>
Gerrit-HasComments: Yes

View raw message