Steven Jacobs has posted comments on this change. Change subject: Compile a plan that matches user query in the case of nonpure functions ......................................................................
Patch Set 4: (3 comments) Regarding the two queries that you listed, I will look into them more and comment back with a report. https://asterix-gerrit.ics.uci.edu/#/c/1057/4/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 729: //Nonpure nonjoin case > It's not intuitive for me to understand the if condition, e.g., why this ca I'm not sure if I can 100% guarantee this, but I'm not sure whether that was true before this change either. The nice thing is that there are several checks elsewhere, and as a whole it seems that no false negatives or positives are occurring. The tests are passing, but we are only guaranteed to be as reliable as our tests. Until the access methods get the long overdue overhaul, I don't know if we can get better than this. https://asterix-gerrit.ics.uci.edu/#/c/1057/4/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IOptimizableFuncExpr.java File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/IOptimizableFuncExpr.java: Line 80: ILogicalExpression[] getConstantAtRuntimeExpressions(); > What does ConstantAtRuntimeExpressions() mean? This name is lingering from the previous assumption that nonPures could be pushed into the function calls. Now that this is no longer true these values only hold expressions that are actually constant. I've renamed the variables and methods https://asterix-gerrit.ics.uci.edu/#/c/1057/4/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java File hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/ExtractCommonExpressionsRule.java: Line 252: // However, if the op is already using variables that are not live, > MAJOR SonarQube violation: Done -- 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: 4 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Steven Jacobs <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: Preston Carman <[email protected]> Gerrit-Reviewer: Steven Jacobs <[email protected]> Gerrit-Reviewer: Yingyi Bu <[email protected]> Gerrit-HasComments: Yes
