>From Dmitry Lychagin <[email protected]>: Dmitry Lychagin has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043 )
Change subject: [NO ISSUE][COMP] Make views utilize secondary indexes ...................................................................... Patch Set 2: (6 comments) https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043/2/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: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043/2/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java@a2966 PS2, Line 2966: if (!funcIDSetThatRetainFieldName.contains(funcIdent)) { are we not using funcIDSetThatRetainFieldName set anymore? If not then can we remove it? https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043/2/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/AccessMethodUtils.java@3187 PS2, Line 3187: return funId == FIELD_ACCESS_BY_NAME || funId == FIELD_ACCESS_BY_INDEX || funId == FIELD_ACCESS_NESTED; let's use FunctionIdentifier.equals() instead of == https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043/2/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/ArrayBTreeAccessMethod.java File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/ArrayBTreeAccessMethod.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043/2/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/ArrayBTreeAccessMethod.java@258 PS2, Line 258: return !defaultNull; We don't support CAST DEFAULT NULL for Array indexes, right? May be we should fail with COMPILATION_ILLEGAL_STATE if we get it here. https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043/2/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: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043/2/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java@1043 PS2, Line 1043: public boolean acceptsFunction(AbstractFunctionCallExpression functionExpr, IAType indexedFieldType, May be we should change this method to accept a boolean 'finalStep'. This way we might be able to simplify AbstractIntroduceAccessMethodRule.acceptSteps() method. It'll always call this method acceptsFunction() with a flag specifying whether it's a final step or not. For intermediate steps we only allow AccessMethodUtils.isFieldAccess() functions, for a final step we also allow CAST_NULL_TYPE_CONSTRUCTORS functions. The requirement is that we have a least one field access step, so the final step is allowed to be a cast function if there was a field access step before it. What do you think? https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043/2/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/BTreeAccessMethod.java@1048 PS2, Line 1048: } else if (CAST_NULL_TYPE_CONSTRUCTORS.contains(funId)) { Can move default null check here? : else if (defaultNull && CAST_NULL_TYPE_CONSTRUCTORS.contains(funId)) { ... } https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043/2/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java File asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043/2/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/InvertedIndexAccessMethod.java@1359 PS2, Line 1359: return !defaultNull; We don't support defaultNull for this index type. Should we just fail with COMPILATION_ILLEGAL_STATE error here? -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/14043 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Change-Id: I7ae50a7ccad9dc4dd2df221c4c643a4af04367b9 Gerrit-Change-Number: 14043 Gerrit-PatchSet: 2 Gerrit-Owner: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Dmitry Lychagin <[email protected]> Gerrit-Reviewer: Glenn Galvizo <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]> Gerrit-Comment-Date: Mon, 15 Nov 2021 20:05:32 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
