LENS-1419: UnionCandidates getting pruned when only dim attributes projected
Project: http://git-wip-us.apache.org/repos/asf/lens/repo Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/2448336d Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/2448336d Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/2448336d Branch: refs/heads/current-release-line Commit: 2448336da1033d0d037fcaa875650528612df161 Parents: a899577 Author: Sushil Mohanty <[email protected]> Authored: Thu May 4 16:58:00 2017 +0530 Committer: Rajat Khandelwal <[email protected]> Committed: Thu May 4 16:58:00 2017 +0530 ---------------------------------------------------------------------- .../apache/lens/cube/parse/CandidateCoveringSetsResolver.java | 4 +++- .../main/java/org/apache/lens/cube/parse/UnionQueryWriter.java | 5 ++--- 2 files changed, 5 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lens/blob/2448336d/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java index d6f8ad1..1e9873f 100644 --- a/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java +++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java @@ -141,7 +141,9 @@ public class CandidateCoveringSetsResolver implements ContextRewriter { // prune non covering sets pruneUnionCandidatesNotCoveringAllRanges(unionCoveringSet, cubeql); // prune candidate set which doesn't contain any common measure i - pruneUnionCoveringSetWithoutAnyCommonMeasure(unionCoveringSet, queriedMsrs); + if (!queriedMsrs.isEmpty()) { + pruneUnionCoveringSetWithoutAnyCommonMeasure(unionCoveringSet, queriedMsrs); + } // prune redundant covering sets pruneRedundantUnionCoveringSets(unionCoveringSet); // pruing done in the previous steps, now create union candidates http://git-wip-us.apache.org/repos/asf/lens/blob/2448336d/lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java index 01b39e9..bd7134b 100644 --- a/lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java +++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java @@ -336,12 +336,11 @@ public class UnionQueryWriter extends SimpleHQLContext { if (phraseCountMap.get(col).size() > 1) { List<Integer> childenToDelete = phraseCountMap.get(col). subList(1, phraseCountMap.get(col).size()); - int counter = 0; for (int i : childenToDelete) { for (StorageCandidateHQLContext sc : storageCandidates) { - sc.getQueryAst().getSelectAST().deleteChild(i - counter); + sc.getQueryAst().getSelectAST().setChild(i, + new ASTNode(new CommonToken(HiveParser.Identifier, DUPLICATE_EXPRESSION_PREFIX))); } - counter++; } } }
