You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by ra...@apache.org on 2015/10/09 06:17:43 UTC
[38/50] [abbrv] lens git commit: LENS-795 : Look ahead is failing
with partition not found if any process time partitions are absent
LENS-795 : Look ahead is failing with partition not found if any process time partitions are absent
Project: http://git-wip-us.apache.org/repos/asf/lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/lens/commit/d7f09ede
Tree: http://git-wip-us.apache.org/repos/asf/lens/tree/d7f09ede
Diff: http://git-wip-us.apache.org/repos/asf/lens/diff/d7f09ede
Branch: refs/heads/current-release-line
Commit: d7f09ede37e1f2d75e3e3d62a2e3a0a2375575cc
Parents: e5b793c
Author: Rajat Khandelwal <pr...@apache.org>
Authored: Wed Sep 30 19:17:26 2015 +0530
Committer: Raju Bairishetti <ra...@im0933-x0.corp.inmobi.com>
Committed: Wed Sep 30 19:17:26 2015 +0530
----------------------------------------------------------------------
.../PartitionRangesForPartitionColumns.java | 6 ++++--
.../lens/cube/parse/StorageTableResolver.java | 19 +++++++++++++++----
2 files changed, 19 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lens/blob/d7f09ede/lens-cube/src/main/java/org/apache/lens/cube/parse/PartitionRangesForPartitionColumns.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/PartitionRangesForPartitionColumns.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/PartitionRangesForPartitionColumns.java
index b389a8f..fa3f6ef 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/PartitionRangesForPartitionColumns.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/PartitionRangesForPartitionColumns.java
@@ -41,10 +41,12 @@ public class PartitionRangesForPartitionColumns extends HashMap<String, RangesPa
.rangeUpto(partition.next().withUpdatePeriod(UpdatePeriod.values()[0])));
}
- public Set<String> toSet() {
+ public Set<String> toSet(Set<String> partColsQueried) {
Set<String> ret = Sets.newHashSet();
for (Map.Entry<String, RangesPartitionTimeline> entry : entrySet()) {
- ret.add(entry.getKey() + ":" + entry.getValue().getRanges());
+ if (partColsQueried.contains(entry.getKey())) {
+ ret.add(entry.getKey() + ":" + entry.getValue().getRanges());
+ }
}
return ret;
}
http://git-wip-us.apache.org/repos/asf/lens/blob/d7f09ede/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
index 68ab5ab..f67fc26 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
@@ -363,7 +363,9 @@ class StorageTableResolver implements ContextRewriter {
PartitionRangesForPartitionColumns missingParts = new PartitionRangesForPartitionColumns();
boolean noPartsForRange = false;
Set<String> unsupportedTimeDims = Sets.newHashSet();
+ Set<String> partColsQueried = Sets.newHashSet();
for (TimeRange range : cubeql.getTimeRanges()) {
+ partColsQueried.add(range.getPartitionColumn());
StringBuilder extraWhereClause = new StringBuilder();
Set<FactPartition> rangeParts = getPartitions(cfact.fact, range, skipStorageCauses, missingParts);
// If no partitions were found, then we'll fallback.
@@ -389,6 +391,7 @@ class StorageTableResolver implements ContextRewriter {
if (fallBackRange == null) {
break;
}
+ partColsQueried.add(fallBackRange.getPartitionColumn());
rangeParts = getPartitions(cfact.fact, fallBackRange, skipStorageCauses, missingParts);
extraWhereClause.append(sep)
.append(prevRange.toTimeDimWhereClause(cubeql.getAliasForTableName(cubeql.getCube()), timeDim));
@@ -433,7 +436,7 @@ class StorageTableResolver implements ContextRewriter {
i.remove();
continue;
}
- Set<String> nonExistingParts = missingParts.toSet();
+ Set<String> nonExistingParts = missingParts.toSet(partColsQueried);
if (!nonExistingParts.isEmpty()) {
addNonExistingParts(cfact.fact.getName(), nonExistingParts);
}
@@ -637,8 +640,10 @@ class StorageTableResolver implements ContextRewriter {
for (Date date : timeRange.iterable(pPart.getPeriod(), 1)) {
FactPartition innerPart = new FactPartition(partCol, date, pPart.getPeriod(), pPart,
partWhereClauseFormat);
- updateFactPartitionStorageTablesFrom(fact, innerPart, pPart.getStorageTables());
- partitions.add(innerPart);
+ updateFactPartitionStorageTablesFrom(fact, innerPart, pPart);
+ if (innerPart.isFound()) {
+ partitions.add(innerPart);
+ }
}
log.debug("added all sub partitions blindly in pPart: {}", pPart);
}
@@ -678,7 +683,7 @@ class StorageTableResolver implements ContextRewriter {
updatePeriods, addNonExistingParts, failOnPartialData, skipStorageCauses, missingPartitions);
}
- void updateFactPartitionStorageTablesFrom(CubeFactTable fact,
+ private void updateFactPartitionStorageTablesFrom(CubeFactTable fact,
FactPartition part, Set<String> storageTableNames) throws LensException, HiveException, ParseException {
for (String storageTableName : storageTableNames) {
if (client.factPartitionExists(fact, part, storageTableName)) {
@@ -687,4 +692,10 @@ class StorageTableResolver implements ContextRewriter {
}
}
}
+
+ private void updateFactPartitionStorageTablesFrom(CubeFactTable fact,
+ FactPartition part, FactPartition pPart) throws LensException, HiveException, ParseException {
+ updateFactPartitionStorageTablesFrom(fact, part, pPart.getStorageTables());
+ part.setFound(part.isFound() && pPart.isFound());
+ }
}