Yingyi Bu has posted comments on this change. Change subject: Convert comparisons with current-datetime, current-date, and current-time to applicable index searches as though they were constants ......................................................................
Patch Set 3: (15 comments) It seems some variables like type and env should never be null -- instead of being "if-null-do-nothing" or "if null type-env return null-type", should we throw exceptions for those case? https://asterix-gerrit.ics.uci.edu/#/c/367/3/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AbstractIntroduceAccessMethodRule.java File asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AbstractIntroduceAccessMethodRule.java: Line 226: if (indexedTypes.size() < 2 && optFuncExpr.getNumLogicalVars() == 1 && typeEnvironment != null) { In which the type environment can be null? If it should never be the case, should we throw an exception when typeEnvironment is null? https://asterix-gerrit.ics.uci.edu/#/c/367/3/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java File asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java: Line 140: if (expressionType == null) { In which case it could be a null? Line 149: if (expressionType == null) { In which case it could be null? Line 338: if (constantExpression instanceof ConstantExpression) { constantExpression.getExpressionTag() == ExpressionTag.Constant Line 351: if (constantValueTag != fieldType.getTypeTag() && constantValue != null) { In which case constantValue can be a null? Line 637: if (typeEnvironment == null || context == null) { Should we throw an exception if context or type-env is null? https://asterix-gerrit.ics.uci.edu/#/c/367/3/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java File asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java: Line 240: ILogicalExpression[] constExpressions = new ILogicalExpression[numSecondaryKeys]; rename it? It actually doesn't store "constant" expressions but functaion-call expressions that can be treated as a constant at runtime. Line 241: LogicalVariable[] constExprVars = new LogicalVariable[numSecondaryKeys]; rename it? Line 276: && !(searchKeyExpr instanceof VariableReferenceExpression)) { if(searchKeyExpr.getExpressionTag()==LogicalExpressionTag.FUNCTION_CALL) https://asterix-gerrit.ics.uci.edu/#/c/367/3/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-datetime-01.aql File asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-datetime-01.aql: Line 4: * Expected Result : Success ASF License header https://asterix-gerrit.ics.uci.edu/#/c/367/3/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-datetime-02.aql File asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-datetime-02.aql: Line 4: * Expected Result : Success ASF License header https://asterix-gerrit.ics.uci.edu/#/c/367/3/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-datetime-03.aql File asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-datetime-03.aql: Line 4: * Expected Result : Success ASF license header Line 22: where $emergency.timestamp >= current-datetime() extra space. https://asterix-gerrit.ics.uci.edu/#/c/367/3/asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-datetime-04.aql File asterix-app/src/test/resources/optimizerts/queries/btree-index/btree-datetime-04.aql: Line 3: * Expected Result : Success ASF License header. Line 21: where $emergency.timestamp >= current-datetime() extra space. -- To view, visit https://asterix-gerrit.ics.uci.edu/367 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: comment Gerrit-Change-Id: Ied64276873afcfbdd31dac313009e47429d8f9b0 Gerrit-PatchSet: 3 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Steven Jacobs <[email protected]> Gerrit-Reviewer: Ian Maxon <[email protected]> Gerrit-Reviewer: Ildar Absalyamov <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Preston Carman <[email protected]> Gerrit-Reviewer: Steven Jacobs <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Reviewer: Yingyi Bu <[email protected]> Gerrit-HasComments: Yes
