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

Reply via email to