Yingyi Bu has posted comments on this change. Change subject: Added LeftOuterUnnestMap operator. ......................................................................
Patch Set 4: (15 comments) https://asterix-gerrit.ics.uci.edu/#/c/637/4/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/BTreeSearchPOperator.java File asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/BTreeSearchPOperator.java: Line 118: minFilterVarList = leftOuterUnnestMapOp.getMinFilterVars(); The if-else branch can be unified with an AbstractUnnestMapOperator. Line 148: jobGenParams.getRetainNull(), dataset, jobGenParams.getIndexName(), lowKeyIndexes, highKeyIndexes, getRetainNull should be removed from jobGenParams, If it is LeftOuterUnnestMap, then this bit is true. If it is UnnestMap, then this bit is false. https://asterix-gerrit.ics.uci.edu/#/c/637/4/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/InvertedIndexPOperator.java File asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/InvertedIndexPOperator.java: Line 161: jobGenParams.getRetainNull(), jobGenParams.getDatasetName(), dataset, jobGenParams.getIndexName(), remove getRetainNull from jobGenParams Line 234: } else if (unnestMap.getOperatorTag() == LogicalOperatorTag.UNNEST_MAP) { unify if-else branches. https://asterix-gerrit.ics.uci.edu/#/c/637/4/asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/RTreeSearchPOperator.java File asterix-algebra/src/main/java/org/apache/asterix/algebra/operators/physical/RTreeSearchPOperator.java: Line 80: unnestExpr = unnestMapOp.getExpressionRef().getValue(); unify if-else branch. Line 117: jobGenParams.getRetainNull(), dataset, jobGenParams.getIndexName(), keyIndexes, minFilterFieldIndexes, remove jobGenParams.getRetainNull. Instead, get that bit by checking the logical op is an unnestmap or leftouterunnestmap https://asterix-gerrit.ics.uci.edu/#/c/637/4/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixPhysicalOperatorsRule.java File asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SetAsterixPhysicalOperatorsRule.java: Line 207: unnestExpr = ((LeftOuterUnnestMapOperator) op).getExpressionRef().getValue(); unify if-else https://asterix-gerrit.ics.uci.edu/#/c/637/4/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 316: } else if (unnestMapOp.getOperatorTag() == LogicalOperatorTag.LEFT_OUTER_UNNEST_MAP) { unify if-else Line 339: } else if (unnestMapOp.getOperatorTag() == LogicalOperatorTag.LEFT_OUTER_UNNEST_MAP) { unify if-else Line 465: if (jobGenParams.getRetainNull()) { remove the hack in jobGenParams https://asterix-gerrit.ics.uci.edu/#/c/637/4/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/OptimizableOperatorSubTree.java File asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/OptimizableOperatorSubTree.java: Line 88: // Skip LIMIT if one is present. Why this piece of changes are relevant? Should they in the change of push-limit-into-index-search? https://asterix-gerrit.ics.uci.edu/#/c/637/4/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/RTreeAccessMethod.java File asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/am/RTreeAccessMethod.java: Line 116: AccessMethodAnalysisContext analysisCtx, boolean retainInput, boolean retainNull, Are you using the right CodeStyle? I tried to format this file in my Eclipse but nothing gets changed. https://asterix-gerrit.ics.uci.edu/#/c/637/4/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java File asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineAllNtsInSubplanVisitor.java: Line 211: op.getGroupByList().add( Right CodeStyle? Line 573: return visitSingleInputOperator(op); Throw an exception here. The subquery de-correlation rule should always be applied before index-access-method related rules. https://asterix-gerrit.ics.uci.edu/#/c/637/4/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineLeftNtsInSubplanJoinFlatteningVisitor.java File asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/subplan/InlineLeftNtsInSubplanJoinFlatteningVisitor.java: Line 343: return visitSingleInputOperator(op); Throw an exception here. The subquery de-correlation rule should always be applied before index-access-method related rules. -- To view, visit https://asterix-gerrit.ics.uci.edu/637 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: comment Gerrit-Change-Id: I6760319c2d3ff90c8b7d8ddeea3d9dd8f743366b Gerrit-PatchSet: 4 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Taewoo Kim <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Yingyi Bu <[email protected]> Gerrit-HasComments: Yes
