You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Yingyi Bu (Code Review)" <do...@asterixdb.incubator.apache.org> on 2016/03/01 06:31:31 UTC
Change in asterixdb[master]: Added LeftOuterUnnestMap operator.
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 <wa...@yahoo.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: Yes