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)) {