Fix for column start and end times not working in Virtual facts [LENS-1480]
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
index c57a9c1..43e827a 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
@@ -393,6 +393,11 @@
return this.getName();
}
+ @Override
+ public Map<String, String> getSourceFactProperties() {
+ return getProperties();
+ }
+
public String getTablePrefix(String storage, UpdatePeriod updatePeriod) {
return storagePrefixUpdatePeriodMap.get(storage).get(updatePeriod);
}
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeVirtualFactTable.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeVirtualFactTable.java
index 8b55985..96948cc 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeVirtualFactTable.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeVirtualFactTable.java
@@ -190,4 +190,9 @@
public String getSourceFactName() {
return this.sourceCubeFactTable.getName();
}
+
+ @Override
+ public Map<String, String> getSourceFactProperties() {
+ return getSourceCubeFactTable().getProperties();
+ }
}
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java
index a463c47..e351d7f 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/FactTable.java
@@ -163,4 +163,5 @@
*/
String getSourceFactName();
+ Map<String, String> getSourceFactProperties();
}
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java b/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
index fd07bf2..3ee66ee 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java
@@ -315,7 +315,7 @@
public Optional<Date> getColumnStartTime(String column) {
Date startTime = null;
- for (String key : getTable().getProperties().keySet()) {
+ for (String key : this.getFact().getSourceFactProperties().keySet()) {
if (key.contains(MetastoreConstants.FACT_COL_START_TIME_PFX)) {
String propCol = StringUtils.substringAfter(key, MetastoreConstants.FACT_COL_START_TIME_PFX);
if (column.equals(propCol)) {
@@ -329,7 +329,7 @@
@Override
public Optional<Date> getColumnEndTime(String column) {
Date endTime = null;
- for (String key : getTable().getProperties().keySet()) {
+ for (String key : this.getFact().getSourceFactProperties().keySet()) {
if (key.contains(MetastoreConstants.FACT_COL_END_TIME_PFX)) {
String propCol = StringUtils.substringAfter(key, MetastoreConstants.FACT_COL_END_TIME_PFX);
if (column.equals(propCol)) {