Repository: lens
Updated Branches:
  refs/heads/master 7e9e47ea6 -> 7c7c86dae


http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
index d16ea4c..36c1dba 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java
@@ -19,6 +19,7 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.*;
 import static org.apache.lens.cube.parse.CubeTestSetup.*;
 
 import java.util.*;
@@ -55,18 +56,16 @@ public class TestDenormalizationResolver extends 
TestQueryRewrite {
   @Test
   public void testDenormsAsDirectFields() throws ParseException, 
LensException, HiveException {
     // denorm fields directly available
-    String twoDaysITRange =
-      "time_range_in(it, '" + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + 
"','"
-        + CubeTestSetup.getDateUptoHours(NOW) + "')";
-    String hqlQuery = rewrite("select dim2big1, max(msr3)," + " msr2 from 
testCube" + " where " + twoDaysITRange, conf);
+    String hqlQuery = rewrite("select dim2big1, max(msr3)," + " msr2 from 
testCube" + " where " + TWO_DAYS_RANGE_IT,
+      conf);
     String expecteddim2big1 =
       getExpectedQuery(cubeName, "select testcube.dim2big1," + " 
max(testcube.msr3), sum(testcube.msr2) FROM ", null,
         " group by testcube.dim2big1", 
getWhereForDailyAndHourly2daysWithTimeDim(cubeName, "it", "C2_summary4"),
         null);
     TestCubeRewriter.compareQueries(hqlQuery, expecteddim2big1);
     // with another table
-    hqlQuery = rewrite("select dim2big1, citydim.name, max(msr3)," + " msr2 
from testCube" + " where " + twoDaysITRange,
-      conf);
+    hqlQuery = rewrite("select dim2big1, citydim.name, max(msr3)," + " msr2 
from testCube" + " where "
+      + TWO_DAYS_RANGE_IT, conf);
     String expecteddim2big1WithAnotherTable = getExpectedQuery(cubeName,
       "select testcube.dim2big1, citydim.name, max(testcube.msr3), 
sum(testcube.msr2) FROM ", " JOIN "
         + getDbName() + "c1_citytable citydim " + "on testcube.cityid = 
citydim.id and citydim.dt = 'latest' ", null,
@@ -75,7 +74,7 @@ public class TestDenormalizationResolver extends 
TestQueryRewrite {
       null);
     TestCubeRewriter.compareQueries(hqlQuery, 
expecteddim2big1WithAnotherTable);
 
-    hqlQuery = rewrite("select dim2big2, max(msr3)," + " msr2 from testCube" + 
" where " + twoDaysITRange, conf);
+    hqlQuery = rewrite("select dim2big2, max(msr3)," + " msr2 from testCube" + 
" where " + TWO_DAYS_RANGE_IT, conf);
     String expecteddim2big2 =
       getExpectedQuery(cubeName, "select testcube.dim2big2, 
max(testcube.msr3), sum(testcube.msr2) FROM ", null,
         " group by testcube.dim2big2", 
getWhereForDailyAndHourly2daysWithTimeDim(cubeName, "it", "C2_summary4"),
@@ -84,8 +83,8 @@ public class TestDenormalizationResolver extends 
TestQueryRewrite {
 
     Configuration conf2 = new Configuration(conf);
     conf2.set(CubeQueryConfUtil.DRIVER_SUPPORTED_STORAGES, "C2");
-    hqlQuery =
-      rewrite("select testdim3.name, dim2big1, max(msr3)," + " msr2 from 
testCube" + " where " + twoDaysITRange, conf2);
+    hqlQuery = rewrite("select testdim3.name, dim2big1, max(msr3)," + " msr2 
from testCube" + " where "
+      + TWO_DAYS_RANGE_IT, conf2);
     String expected =
       getExpectedQuery(cubeName,
         "select testdim3.name, testcube.dim2big1, max(testcube.msr3), 
sum(testcube.msr2) FROM ", " JOIN "
@@ -96,9 +95,9 @@ public class TestDenormalizationResolver extends 
TestQueryRewrite {
         null);
     TestCubeRewriter.compareQueries(hqlQuery, expected);
 
-    hqlQuery = rewrite("select dim2big1, max(msr3)," + " msr2 from testCube" + 
" where " + twoDaysITRange, conf2);
+    hqlQuery = rewrite("select dim2big1, max(msr3)," + " msr2 from testCube" + 
" where " + TWO_DAYS_RANGE_IT, conf2);
     TestCubeRewriter.compareQueries(hqlQuery, expecteddim2big1);
-    hqlQuery = rewrite("select dim2big2, max(msr3)," + " msr2 from testCube" + 
" where " + twoDaysITRange, conf2);
+    hqlQuery = rewrite("select dim2big2, max(msr3)," + " msr2 from testCube" + 
" where " + TWO_DAYS_RANGE_IT, conf2);
     TestCubeRewriter.compareQueries(hqlQuery, expecteddim2big2);
   }
 
@@ -190,11 +189,8 @@ public class TestDenormalizationResolver extends 
TestQueryRewrite {
 
   @Test
   public void 
testCubeQueryWithExpressionHavingDenormColumnComingAsDirectColumn() throws 
Exception {
-    String twoDaysITRange =
-      "time_range_in(it, '" + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + 
"','"
-        + CubeTestSetup.getDateUptoHours(NOW) + "')";
-    String hqlQuery = rewrite("select substrdim2big1, max(msr3)," + " msr2 
from testCube" + " where " + twoDaysITRange,
-      conf);
+    String hqlQuery = rewrite("select substrdim2big1, max(msr3)," + " msr2 
from testCube" + " where "
+      + TWO_DAYS_RANGE_IT, conf);
     String expecteddim2big1 =
       getExpectedQuery(cubeName, "select substr(testcube.dim2big1, 5), 
max(testcube.msr3), sum(testcube.msr2) FROM ",
         null, " group by substr(testcube.dim2big1, 5)",

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionContext.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionContext.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionContext.java
index 0d1f9fe..f48e1b7 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionContext.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionContext.java
@@ -19,11 +19,11 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.TWO_DAYS_RANGE;
+
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.apache.lens.cube.parse.CubeTestSetup.TWO_DAYS_RANGE;
-
 import org.apache.lens.cube.parse.ExpressionResolver.ExprSpecContext;
 
 import org.apache.hadoop.conf.Configuration;

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java
index 1e21fb0..e77f919 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java
@@ -19,6 +19,7 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.*;
 import static org.apache.lens.cube.parse.CubeTestSetup.*;
 
 import org.apache.lens.cube.error.LensCubeErrorCode;

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
index ea561b6..d9e442d 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
@@ -19,6 +19,7 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.*;
 import static org.apache.lens.cube.parse.CubeTestSetup.*;
 
 import static org.testng.Assert.*;

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestORTimeRangeWriter.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestORTimeRangeWriter.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestORTimeRangeWriter.java
index 4a23818..b98fdfb 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestORTimeRangeWriter.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestORTimeRangeWriter.java
@@ -19,6 +19,8 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.*;
+
 import java.text.DateFormat;
 import java.util.ArrayList;
 import java.util.List;
@@ -43,13 +45,13 @@ public class TestORTimeRangeWriter extends 
TestTimeRangeWriter {
   public void validateDisjoint(String whereClause, DateFormat format) {
     List<String> parts = new ArrayList<String>();
     if (format == null) {
-      parts.add(UpdatePeriod.MONTHLY.format(CubeTestSetup.TWO_MONTHS_BACK));
-      parts.add(UpdatePeriod.DAILY.format(CubeTestSetup.TWODAYS_BACK));
-      parts.add(UpdatePeriod.HOURLY.format(CubeTestSetup.NOW));
+      parts.add(UpdatePeriod.MONTHLY.format(TWO_MONTHS_BACK));
+      parts.add(UpdatePeriod.DAILY.format(TWODAYS_BACK));
+      parts.add(UpdatePeriod.HOURLY.format(NOW));
     } else {
-      parts.add(format.format(CubeTestSetup.TWO_MONTHS_BACK));
-      parts.add(format.format(CubeTestSetup.TWODAYS_BACK));
-      parts.add(format.format(CubeTestSetup.NOW));
+      parts.add(format.format(TWO_MONTHS_BACK));
+      parts.add(format.format(TWODAYS_BACK));
+      parts.add(format.format(NOW));
     }
 
     System.out.println("Expected :" + StorageUtil.getWherePartClause("dt", 
"test", parts));
@@ -60,30 +62,16 @@ public class TestORTimeRangeWriter extends 
TestTimeRangeWriter {
   public void validateConsecutive(String whereClause, DateFormat format) {
     List<String> parts = new ArrayList<String>();
     if (format == null) {
-      parts.add(UpdatePeriod.DAILY.format(CubeTestSetup.ONE_DAY_BACK));
-      parts.add(UpdatePeriod.DAILY.format(CubeTestSetup.TWODAYS_BACK));
-      parts.add(UpdatePeriod.DAILY.format(CubeTestSetup.NOW));
-    } else {
-      parts.add(format.format(CubeTestSetup.ONE_DAY_BACK));
-      parts.add(format.format(CubeTestSetup.TWODAYS_BACK));
-      parts.add(format.format(CubeTestSetup.NOW));
-    }
-
-    System.out.println("Expected :" + StorageUtil.getWherePartClause("dt", 
"test", parts));
-    Assert.assertEquals(whereClause, StorageUtil.getWherePartClause("dt", 
"test", parts));
-  }
-
-  @Override
-  public void validateSingle(String whereClause, DateFormat format) {
-    List<String> parts = new ArrayList<String>();
-    if (format == null) {
-      parts.add(UpdatePeriod.DAILY.format(CubeTestSetup.ONE_DAY_BACK));
+      parts.add(getDateStringWithOffset(UpdatePeriod.DAILY, -1));
+      parts.add(getDateStringWithOffset(UpdatePeriod.DAILY, -2));
+      parts.add(getDateStringWithOffset(UpdatePeriod.DAILY, 0));
     } else {
-      parts.add(format.format(CubeTestSetup.ONE_DAY_BACK));
+      parts.add(format.format(getDateWithOffset(UpdatePeriod.DAILY, -1)));
+      parts.add(format.format(getDateWithOffset(UpdatePeriod.DAILY, -2)));
+      parts.add(format.format(getDateWithOffset(UpdatePeriod.DAILY, 0)));
     }
 
     System.out.println("Expected :" + StorageUtil.getWherePartClause("dt", 
"test", parts));
     Assert.assertEquals(whereClause, StorageUtil.getWherePartClause("dt", 
"test", parts));
   }
-
 }

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java
index 255aade..571f7de 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java
@@ -19,7 +19,7 @@
 
 package org.apache.lens.cube.parse;
 
-import static org.apache.lens.cube.parse.CubeTestSetup.TWO_DAYS_RANGE;
+import static org.apache.lens.cube.metadata.DateFactory.TWO_DAYS_RANGE;
 
 import java.util.Arrays;
 

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestRewriterPlan.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestRewriterPlan.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestRewriterPlan.java
index 4d3a3dc..5a072e4 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestRewriterPlan.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestRewriterPlan.java
@@ -19,7 +19,7 @@
 
 package org.apache.lens.cube.parse;
 
-import static org.apache.lens.cube.parse.CubeTestSetup.TWO_DAYS_RANGE;
+import static org.apache.lens.cube.metadata.DateFactory.TWO_DAYS_RANGE;
 
 import java.util.Arrays;
 import java.util.Collections;

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestStorageUtil.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestStorageUtil.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestStorageUtil.java
index 73c3338..0069609 100644
--- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestStorageUtil.java
+++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestStorageUtil.java
@@ -19,6 +19,8 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.*;
+
 import java.util.*;
 
 import org.apache.lens.cube.metadata.FactPartition;
@@ -64,9 +66,9 @@ public class TestStorageUtil {
     Configuration conf = new Configuration();
     // {s1,s2,s3}, {s3}, {s3} -> {s3}
     List<FactPartition> answeringParts = new ArrayList<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s123));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s3));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.HOURLY, null, null, s3));
+    answeringParts.add(new FactPartition("dt", TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s123));
+    answeringParts.add(new FactPartition("dt", TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s3));
+    answeringParts.add(new FactPartition("dt", NOW, UpdatePeriod.HOURLY, null, 
null, s3));
     Map<String, Set<FactPartition>> result = new HashMap<String, 
Set<FactPartition>>();
     StorageUtil.getMinimalAnsweringTables(answeringParts, result);
     System.out.println("results:" + result);
@@ -74,15 +76,15 @@ public class TestStorageUtil {
     Assert.assertEquals("S3", result.keySet().iterator().next());
     Set<FactPartition> coveredParts = result.get("S3");
     Assert.assertEquals(3, coveredParts.size());
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWO_MONTHS_BACK));
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWODAYS_BACK));
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.NOW));
+    Assert.assertTrue(contains(coveredParts, TWO_MONTHS_BACK));
+    Assert.assertTrue(contains(coveredParts, TWODAYS_BACK));
+    Assert.assertTrue(contains(coveredParts, NOW));
 
     // {s1,s2,s3}, {s4}, {s5} - > {s1,s4,s5} or {s2,s4,s5} or {s3,s4,s5}
     answeringParts = new ArrayList<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s123));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s4));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.HOURLY, null, null, s5));
+    answeringParts.add(new FactPartition("dt", TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s123));
+    answeringParts.add(new FactPartition("dt", TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s4));
+    answeringParts.add(new FactPartition("dt", NOW, UpdatePeriod.HOURLY, null, 
null, s5));
     result = new HashMap<String, Set<FactPartition>>();
     StorageUtil.getMinimalAnsweringTables(answeringParts, result);
     System.out.println("results:" + result);
@@ -93,10 +95,10 @@ public class TestStorageUtil {
       || result.keySet().contains("S3"));
     coveredParts = result.get("S4");
     Assert.assertEquals(1, coveredParts.size());
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWODAYS_BACK));
+    Assert.assertTrue(contains(coveredParts, TWODAYS_BACK));
     coveredParts = result.get("S5");
     Assert.assertEquals(1, coveredParts.size());
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.NOW));
+    Assert.assertTrue(contains(coveredParts, NOW));
     coveredParts = result.get("S1");
     if (coveredParts == null) {
       coveredParts = result.get("S2");
@@ -105,13 +107,13 @@ public class TestStorageUtil {
       coveredParts = result.get("S3");
     }
     Assert.assertEquals(1, coveredParts.size());
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWO_MONTHS_BACK));
+    Assert.assertTrue(contains(coveredParts, TWO_MONTHS_BACK));
 
     // {s1}, {s2}, {s3} -> {s1,s2,s3}
     answeringParts = new ArrayList<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s1));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s2));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.HOURLY, null, null, s3));
+    answeringParts.add(new FactPartition("dt", TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s1));
+    answeringParts.add(new FactPartition("dt", TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s2));
+    answeringParts.add(new FactPartition("dt", NOW, UpdatePeriod.HOURLY, null, 
null, s3));
     result = new HashMap<String, Set<FactPartition>>();
     StorageUtil.getMinimalAnsweringTables(answeringParts, result);
     System.out.println("results:" + result);
@@ -121,19 +123,19 @@ public class TestStorageUtil {
     Assert.assertTrue(result.keySet().contains("S3"));
     coveredParts = result.get("S1");
     Assert.assertEquals(1, coveredParts.size());
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWO_MONTHS_BACK));
+    Assert.assertTrue(contains(coveredParts, TWO_MONTHS_BACK));
     coveredParts = result.get("S2");
     Assert.assertEquals(1, coveredParts.size());
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWODAYS_BACK));
+    Assert.assertTrue(contains(coveredParts, TWODAYS_BACK));
     coveredParts = result.get("S3");
     Assert.assertEquals(1, coveredParts.size());
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.NOW));
+    Assert.assertTrue(contains(coveredParts, NOW));
 
     // {s1, s2}, {s2, s3}, {s4} -> {s2,s4}
     answeringParts = new ArrayList<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s12));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s23));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.HOURLY, null, null, s4));
+    answeringParts.add(new FactPartition("dt", TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s12));
+    answeringParts.add(new FactPartition("dt", TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s23));
+    answeringParts.add(new FactPartition("dt", NOW, UpdatePeriod.HOURLY, null, 
null, s4));
     result = new HashMap<String, Set<FactPartition>>();
     StorageUtil.getMinimalAnsweringTables(answeringParts, result);
     System.out.println("results:" + result);
@@ -142,17 +144,17 @@ public class TestStorageUtil {
     Assert.assertTrue(result.keySet().contains("S4"));
     coveredParts = result.get("S2");
     Assert.assertEquals(2, coveredParts.size());
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWO_MONTHS_BACK));
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWODAYS_BACK));
+    Assert.assertTrue(contains(coveredParts, TWO_MONTHS_BACK));
+    Assert.assertTrue(contains(coveredParts, TWODAYS_BACK));
     coveredParts = result.get("S4");
     Assert.assertEquals(1, coveredParts.size());
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.NOW));
+    Assert.assertTrue(contains(coveredParts, NOW));
 
     // {s1, s2}, {s2, s4}, {s4} -> {s1,s4} or {s2,s4}
     answeringParts = new ArrayList<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s12));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s24));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.HOURLY, null, null, s4));
+    answeringParts.add(new FactPartition("dt", TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s12));
+    answeringParts.add(new FactPartition("dt", TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s24));
+    answeringParts.add(new FactPartition("dt", NOW, UpdatePeriod.HOURLY, null, 
null, s4));
     result = new HashMap<String, Set<FactPartition>>();
     StorageUtil.getMinimalAnsweringTables(answeringParts, result);
     System.out.println("results:" + result);
@@ -163,32 +165,32 @@ public class TestStorageUtil {
     if (coveredParts == null) {
       coveredParts = result.get("S2");
       Assert.assertTrue(coveredParts.size() >= 1);
-      Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWO_MONTHS_BACK));
+      Assert.assertTrue(contains(coveredParts, TWO_MONTHS_BACK));
       if (coveredParts.size() == 2) {
-        Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWODAYS_BACK));
+        Assert.assertTrue(contains(coveredParts, TWODAYS_BACK));
         Assert.assertEquals(1, result.get("S4").size());
       }
       coveredParts = result.get("S4");
       Assert.assertTrue(coveredParts.size() >= 1);
-      Assert.assertTrue(contains(coveredParts, CubeTestSetup.NOW));
+      Assert.assertTrue(contains(coveredParts, NOW));
       if (coveredParts.size() == 2) {
-        Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWODAYS_BACK));
+        Assert.assertTrue(contains(coveredParts, TWODAYS_BACK));
         Assert.assertEquals(1, result.get("S2").size());
       }
     } else {
       Assert.assertEquals(1, coveredParts.size());
-      Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWO_MONTHS_BACK));
+      Assert.assertTrue(contains(coveredParts, TWO_MONTHS_BACK));
       coveredParts = result.get("S4");
       Assert.assertTrue(coveredParts.size() >= 1);
-      Assert.assertTrue(contains(coveredParts, CubeTestSetup.NOW));
-      Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWODAYS_BACK));
+      Assert.assertTrue(contains(coveredParts, NOW));
+      Assert.assertTrue(contains(coveredParts, TWODAYS_BACK));
     }
 
     // {s1, s2}, {s2, s3}, {s3,s4} -> {s2,s3} or {s1, s3} or {s2, s4}
     answeringParts = new ArrayList<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s12));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s23));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.HOURLY, null, null, s34));
+    answeringParts.add(new FactPartition("dt", TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s12));
+    answeringParts.add(new FactPartition("dt", TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s23));
+    answeringParts.add(new FactPartition("dt", NOW, UpdatePeriod.HOURLY, null, 
null, s34));
     result = new HashMap<String, Set<FactPartition>>();
     StorageUtil.getMinimalAnsweringTables(answeringParts, result);
     System.out.println("results:" + result);
@@ -204,24 +206,24 @@ public class TestStorageUtil {
     //Assert.assertTrue(result.keySet().contains("S3"));
     /* coveredParts = result.get("S2");
     Assert.assertTrue(coveredParts.size() >= 1);
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWO_MONTHS_BACK));
+    Assert.assertTrue(contains(coveredParts, TWO_MONTHS_BACK));
     if (coveredParts.size() == 2) {
-      Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWODAYS_BACK));
+      Assert.assertTrue(contains(coveredParts, TWODAYS_BACK));
       Assert.assertEquals(1, result.get("S3").size());
     }
     coveredParts = result.get("S3");
     Assert.assertTrue(coveredParts.size() >= 1);
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.NOW));
+    Assert.assertTrue(contains(coveredParts, NOW));
     if (coveredParts.size() == 2) {
-      Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWODAYS_BACK));
+      Assert.assertTrue(contains(coveredParts, TWODAYS_BACK));
       Assert.assertEquals(1, result.get("S2").size());
     }*/
 
     // {s1, s2}, {s2}, {s1} -> {s1,s2}
     answeringParts = new ArrayList<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s12));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s2));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.HOURLY, null, null, s1));
+    answeringParts.add(new FactPartition("dt", TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null, s12));
+    answeringParts.add(new FactPartition("dt", TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null, s2));
+    answeringParts.add(new FactPartition("dt", NOW, UpdatePeriod.HOURLY, null, 
null, s1));
     result = new HashMap<String, Set<FactPartition>>();
     StorageUtil.getMinimalAnsweringTables(answeringParts, result);
     System.out.println("results:" + result);
@@ -230,16 +232,16 @@ public class TestStorageUtil {
     Assert.assertTrue(result.keySet().contains("S2"));
     coveredParts = result.get("S2");
     Assert.assertTrue(coveredParts.size() >= 1);
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWODAYS_BACK));
+    Assert.assertTrue(contains(coveredParts, TWODAYS_BACK));
     if (coveredParts.size() == 2) {
-      Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWO_MONTHS_BACK));
+      Assert.assertTrue(contains(coveredParts, TWO_MONTHS_BACK));
       Assert.assertEquals(1, result.get("S1").size());
     }
     coveredParts = result.get("S1");
     Assert.assertTrue(coveredParts.size() >= 1);
-    Assert.assertTrue(contains(coveredParts, CubeTestSetup.NOW));
+    Assert.assertTrue(contains(coveredParts, NOW));
     if (coveredParts.size() == 2) {
-      Assert.assertTrue(contains(coveredParts, CubeTestSetup.TWO_MONTHS_BACK));
+      Assert.assertTrue(contains(coveredParts, TWO_MONTHS_BACK));
       Assert.assertEquals(1, result.get("S2").size());
     }
   }

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeExtractor.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeExtractor.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeExtractor.java
index a431717..eb8c6eb 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeExtractor.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeExtractor.java
@@ -19,12 +19,15 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.*;
 import static org.apache.lens.cube.parse.CubeTestSetup.*;
 
 import java.util.List;
 
 import org.apache.lens.cube.error.LensCubeErrorCode;
 import org.apache.lens.cube.metadata.TestCubeMetastoreClient;
+import org.apache.lens.cube.metadata.TimeRange;
+import org.apache.lens.cube.metadata.UpdatePeriod;
 import org.apache.lens.server.api.error.LensException;
 
 import org.apache.hadoop.conf.Configuration;
@@ -39,14 +42,10 @@ import org.testng.annotations.Test;
 
 public class TestTimeRangeExtractor extends TestQueryRewrite {
   private CubeQueryRewriter driver;
-  private String dateNow;
-  private String dateTwoDaysBack;
 
   @BeforeTest
   public void setupInstance() throws Exception {
     driver = new CubeQueryRewriter(new Configuration(), new HiveConf());
-    dateTwoDaysBack = getDateUptoHours(TWODAYS_BACK);
-    dateNow = getDateUptoHours(NOW);
   }
 
   @AfterTest
@@ -61,7 +60,8 @@ public class TestTimeRangeExtractor extends TestQueryRewrite {
 
   @Test
   public void testTimeRangeValidation() throws Exception {
-    String timeRange2 = " time_range_in(d_time, '" + dateNow + "','" + 
dateTwoDaysBack + "')";
+    // reverse range
+    String timeRange2 = getTimeRangeString(UpdatePeriod.DAILY, 0, -2, 
UpdatePeriod.HOURLY);
     try {
       // this should throw exception because from date is after to date
       driver.rewrite("SELECT cityid, testCube.msr2 from" + " testCube where " 
+ timeRange2);
@@ -74,7 +74,8 @@ public class TestTimeRangeExtractor extends TestQueryRewrite {
 
   @Test
   public void testEqualTimeRangeValidation() throws Exception {
-    String equalTimeRange = " time_range_in(d_time, '" + dateNow + "','" + 
dateNow + "')";
+    // zero range
+    String equalTimeRange = getTimeRangeString(UpdatePeriod.HOURLY, 0, 0);
     try {
       // this should throw exception because from date and to date are same
       driver.rewrite("SELECT cityid, testCube.msr2 from" + " testCube where " 
+ equalTimeRange);
@@ -87,18 +88,16 @@ public class TestTimeRangeExtractor extends 
TestQueryRewrite {
 
   @Test
   public void testNoNPE() throws Exception {
-    String timeRange = " time_range_in(d_time, '" + dateTwoDaysBack + "','" + 
dateNow + "')";
-    String q1 = "SELECT cityid, testCube.msr2 from testCube where " + 
timeRange + " AND cityid IS NULL";
+    String q1 = "SELECT cityid, testCube.msr2 from testCube where " + 
TWO_DAYS_RANGE + " AND cityid IS NULL";
     rewrite(driver, q1);
-    q1 = "SELECT cityid, testCube.msr2 from testCube where cityid IS NULL AND 
" + timeRange;
+    q1 = "SELECT cityid, testCube.msr2 from testCube where cityid IS NULL AND 
" + TWO_DAYS_RANGE;
     rewrite(driver, q1);
   }
 
   @Test
   public void testTimeRangeASTPosition() throws Exception {
     // check that time range can be any child of AND
-    String timeRange = " time_range_in(d_time, '" + dateTwoDaysBack + "','" + 
dateNow + "')";
-    String q1 = "SELECT cityid, testCube.msr2 from testCube where " + 
timeRange + " AND cityid=1";
+    String q1 = "SELECT cityid, testCube.msr2 from testCube where " + 
TWO_DAYS_RANGE + " AND cityid=1";
     CubeQueryContext cubeql = driver.rewrite(q1);
     String hql = cubeql.toHQL();
   }
@@ -106,10 +105,9 @@ public class TestTimeRangeExtractor extends 
TestQueryRewrite {
   @Test
   public void testPartitionColNameExtract() throws Exception {
     String q2 =
-      "SELECT cityid, testCube.msr3 from testCube where cityid=1 AND " + " 
time_range_in(d_time, '" + dateTwoDaysBack
-        + "','" + dateNow + "')";
+      "SELECT cityid, testCube.msr3 from testCube where cityid=1 AND " + 
TWO_DAYS_RANGE;
     CubeQueryContext cubeql = driver.rewrite(q2);
-    String hql = cubeql.toHQL();
+    cubeql.toHQL();
     // Check that column name in time range is extracted properly
     TimeRange range = cubeql.getTimeRanges().get(0);
     Assert.assertNotNull(range);
@@ -124,12 +122,11 @@ public class TestTimeRangeExtractor extends 
TestQueryRewrite {
     String dateNow = getDateUptoHours(NOW);
     // time range within time range
     String q3 =
-      "SELECT cityid, testCube.msr3 FROM testCube where cityid=1 AND" + "  
(time_range_in(d_time, '" + dateTwoDaysBack
-        + "','" + dateNow + "')  "
+      "SELECT cityid, testCube.msr3 FROM testCube where cityid=1 AND (" + 
TWO_DAYS_RANGE
         // Time range as sibling of the first time range
-        + " OR " + " time_range_in(d_time, '" + dateTwoDaysBack + "', '" + 
dateNow + "'))";
+        + " OR " + TWO_DAYS_RANGE + ")";
     CubeQueryContext cubeql = driver.rewrite(q3);
-    String hql = cubeql.toHQL();
+    cubeql.toHQL();
 
     List<TimeRange> ranges = cubeql.getTimeRanges();
     Assert.assertEquals(2, ranges.size());

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java
index 1fc8bc8..da0e4f4 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java
@@ -19,9 +19,9 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.*;
 import static 
org.apache.lens.cube.parse.CandidateTablePruneCause.CandidateTablePruneCode.COLUMN_NOT_FOUND;
 import static 
org.apache.lens.cube.parse.CandidateTablePruneCause.CandidateTablePruneCode.FACT_NOT_AVAILABLE_IN_RANGE;
-import static org.apache.lens.cube.parse.CubeTestSetup.*;
 
 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertTrue;

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriter.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriter.java 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriter.java
index 0248409..87e128f 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriter.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriter.java
@@ -19,14 +19,18 @@
 
 package org.apache.lens.cube.parse;
 
+import static org.apache.lens.cube.metadata.DateFactory.*;
+import static org.apache.lens.cube.metadata.UpdatePeriod.*;
+
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.LinkedHashSet;
+import java.util.List;
 import java.util.Set;
 
 import org.apache.lens.cube.error.LensCubeErrorCode;
 import org.apache.lens.cube.metadata.FactPartition;
-import org.apache.lens.cube.metadata.UpdatePeriod;
 import org.apache.lens.server.api.error.LensException;
 
 import org.testng.Assert;
@@ -45,16 +49,26 @@ public abstract class TestTimeRangeWriter {
 
   public abstract void validateConsecutive(String whereClause, DateFormat 
format);
 
-  public abstract void validateSingle(String whereClause, DateFormat object);
+  public void validateSingle(String whereClause, DateFormat format) {
+    List<String> parts = new ArrayList<String>();
+    if (format == null) {
+      parts.add(getDateStringWithOffset(DAILY, -1));
+    } else {
+      parts.add(format.format(getDateWithOffset(DAILY, -1)));
+    }
+
+    System.out.println("Expected :" + StorageUtil.getWherePartClause("dt", 
"test", parts));
+    Assert.assertEquals(whereClause, StorageUtil.getWherePartClause("dt", 
"test", parts));
+  }
 
   public static final DateFormat DB_FORMAT = new SimpleDateFormat("yyyy-MM-dd 
HH:mm:ss");
 
   @Test
   public void testDisjointParts() {
     Set<FactPartition> answeringParts = new LinkedHashSet<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, null));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.HOURLY, null, null));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(MONTHLY, -2), 
MONTHLY, null, null));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(DAILY, -2), 
DAILY, null, null));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(HOURLY, 0), 
HOURLY, null, null));
 
     LensException th = null;
     String whereClause = null;
@@ -76,10 +90,10 @@ public abstract class TestTimeRangeWriter {
     }
 
     // test with format
-    answeringParts = new LinkedHashSet<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWO_MONTHS_BACK, 
UpdatePeriod.MONTHLY, null, DB_FORMAT));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, DB_FORMAT));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.HOURLY, null, DB_FORMAT));
+    answeringParts = new LinkedHashSet<>();
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(MONTHLY, -2), 
MONTHLY, null, DB_FORMAT));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(DAILY, -2), 
DAILY, null, DB_FORMAT));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(HOURLY, 0), 
HOURLY, null, DB_FORMAT));
 
     th = null;
     try {
@@ -100,17 +114,17 @@ public abstract class TestTimeRangeWriter {
   @Test
   public void testConsecutiveDayParts() throws LensException {
     Set<FactPartition> answeringParts = new LinkedHashSet<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.ONE_DAY_BACK, 
UpdatePeriod.DAILY, null, null));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, null));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.DAILY, null, null));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(DAILY, -1), 
DAILY, null, null));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(DAILY, -2), 
DAILY, null, null));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(DAILY, 0), 
DAILY, null, null));
 
     String whereClause = getTimerangeWriter().getTimeRangeWhereClause(null, 
"test", answeringParts);
     validateConsecutive(whereClause, null);
 
     answeringParts = new LinkedHashSet<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.ONE_DAY_BACK, 
UpdatePeriod.DAILY, null, DB_FORMAT));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.TWODAYS_BACK, 
UpdatePeriod.DAILY, null, DB_FORMAT));
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.NOW, 
UpdatePeriod.DAILY, null, DB_FORMAT));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(DAILY, -1), 
DAILY, null, DB_FORMAT));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(DAILY, -2), 
DAILY, null, DB_FORMAT));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(DAILY, 0), 
DAILY, null, DB_FORMAT));
 
     whereClause = getTimerangeWriter().getTimeRangeWhereClause(null, "test", 
answeringParts);
     validateConsecutive(whereClause, DB_FORMAT);
@@ -119,12 +133,12 @@ public abstract class TestTimeRangeWriter {
   @Test
   public void testSinglePart() throws LensException {
     Set<FactPartition> answeringParts = new LinkedHashSet<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.ONE_DAY_BACK, 
UpdatePeriod.DAILY, null, null));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(DAILY, -1), 
DAILY, null, null));
     String whereClause = getTimerangeWriter().getTimeRangeWhereClause(null, 
"test", answeringParts);
     validateSingle(whereClause, null);
 
     answeringParts = new LinkedHashSet<FactPartition>();
-    answeringParts.add(new FactPartition("dt", CubeTestSetup.ONE_DAY_BACK, 
UpdatePeriod.DAILY, null, DB_FORMAT));
+    answeringParts.add(new FactPartition("dt", getDateWithOffset(DAILY, -1), 
DAILY, null, DB_FORMAT));
     whereClause = getTimerangeWriter().getTimeRangeWhereClause(null, "test", 
answeringParts);
     validateSingle(whereClause, DB_FORMAT);
 

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriterWithQuery.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriterWithQuery.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriterWithQuery.java
index 7bd7b6b..b7372f1 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriterWithQuery.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriterWithQuery.java
@@ -19,6 +19,11 @@
 
 package org.apache.lens.cube.parse;
 
+import static 
org.apache.lens.cube.error.LensCubeErrorCode.CANNOT_USE_TIMERANGE_WRITER;
+import static org.apache.lens.cube.metadata.DateFactory.*;
+import static org.apache.lens.cube.metadata.UpdatePeriod.CONTINUOUS;
+import static org.apache.lens.cube.metadata.UpdatePeriod.DAILY;
+import static 
org.apache.lens.cube.parse.CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA;
 import static org.apache.lens.cube.parse.CubeTestSetup.*;
 
 import java.text.DateFormat;
@@ -28,7 +33,6 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.lens.cube.error.LensCubeErrorCode;
 import org.apache.lens.cube.metadata.UpdatePeriod;
 import org.apache.lens.server.api.error.LensException;
 
@@ -45,7 +49,7 @@ import lombok.extern.slf4j.Slf4j;
 public class TestTimeRangeWriterWithQuery extends TestQueryRewrite {
 
   private Configuration conf;
-  private final String cubeName = CubeTestSetup.TEST_CUBE_NAME;
+  private final String cubeName = TEST_CUBE_NAME;
 
   @BeforeTest
   public void setupDriver() throws Exception {
@@ -84,39 +88,29 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
       th = e;
       log.error("Semantic exception while testing cube query.", e);
     }
-    if (!CubeTestSetup.isZerothHour()) {
+    if (!isZerothHour()) {
       Assert.assertNotNull(th);
       Assert
-      .assertEquals(th.getErrorCode(), 
LensCubeErrorCode.CANNOT_USE_TIMERANGE_WRITER.getLensErrorInfo().getErrorCode());
+      .assertEquals(th.getErrorCode(), 
CANNOT_USE_TIMERANGE_WRITER.getLensErrorInfo().getErrorCode());
     }
     // hourly partitions for two days
-    conf.setBoolean(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, true);
-
+    conf.setBoolean(FAIL_QUERY_ON_PARTIAL_DATA, true);
     DateFormat qFmt = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
-    Calendar qCal = Calendar.getInstance();
-    Date toDate = qCal.getTime();
-    String qTo = qFmt.format(toDate);
-    qCal.setTime(TWODAYS_BACK);
-    Date from2DaysBackDate = qCal.getTime();
-    String qFrom = qFmt.format(from2DaysBackDate);
-    String twoDaysInRangeClause = " time_range_in(d_time, '"+ qFrom + "', '" + 
qTo + "')";
+    String twoDaysInRangeClause = getTimeRangeString(DAILY, -2, 0, qFmt);
 
     String hqlQuery = rewrite("select SUM(msr2) from testCube" + " where " + 
twoDaysInRangeClause, conf);
     Map<String, String> whereClauses = new HashMap<String, String>();
     whereClauses.put(
-      CubeTestSetup.getDbName() + "c1_testfact",
-      TestBetweenTimeRangeWriter.getBetweenClause(cubeName, "dt", 
from2DaysBackDate, toDate,
-          UpdatePeriod.CONTINUOUS.format()));
+      getDbName() + "c1_testfact",
+      TestBetweenTimeRangeWriter.getBetweenClause(cubeName, "dt",
+        getDateWithOffset(DAILY, -2), getDateWithOffset(DAILY, 0), 
CONTINUOUS.format()));
     String expected = getExpectedQuery(cubeName, "select sum(testcube.msr2) 
FROM ", null, null, whereClauses);
     System.out.println("HQL:" + hqlQuery);
     TestCubeRewriter.compareQueries(hqlQuery, expected);
 
     // multiple range query
-    //from date 4 days back
-    qCal.setTime(BEFORE_4_DAYS_START);
-    Date from4DaysBackDate = qCal.getTime();
-    String qFrom4Days = qFmt.format(from4DaysBackDate);
-    String fourDaysInRangeClause = " time_range_in(d_time, '"+ qFrom4Days + 
"', '" + qTo + "')";
+    //from date 6 days back
+    String fourDaysInRangeClause = getTimeRangeString(DAILY, -6, 0, qFmt);
 
     hqlQuery =
       rewrite("select SUM(msr2) from testCube" + " where " + 
twoDaysInRangeClause + " OR "
@@ -124,12 +118,12 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
 
     whereClauses = new HashMap<String, String>();
     whereClauses.put(
-      CubeTestSetup.getDbName() + "c1_testfact",
-      TestBetweenTimeRangeWriter.getBetweenClause(cubeName, "dt", 
from2DaysBackDate, toDate,
-          UpdatePeriod.CONTINUOUS.format())
+      getDbName() + "c1_testfact",
+      TestBetweenTimeRangeWriter.getBetweenClause(cubeName, "dt", 
getDateWithOffset(DAILY, -2),
+        getDateWithOffset(DAILY, 0), CONTINUOUS.format())
         + " OR"
-        + TestBetweenTimeRangeWriter.getBetweenClause(cubeName, "dt", 
from4DaysBackDate, toDate,
-        UpdatePeriod.CONTINUOUS.format()));
+        + TestBetweenTimeRangeWriter.getBetweenClause(cubeName, "dt", 
getDateWithOffset(DAILY, -6),
+        getDateWithOffset(DAILY, 0), CONTINUOUS.format()));
     expected = getExpectedQuery(cubeName, "select sum(testcube.msr2) FROM ", 
null, null, whereClauses);
     System.out.println("HQL:" + hqlQuery);
     TestCubeRewriter.compareQueries(hqlQuery, expected);
@@ -138,9 +132,9 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
     conf.set(CubeQueryConfUtil.PART_WHERE_CLAUSE_DATE_FORMAT, "yyyy-MM-dd 
HH:mm:ss");
     hqlQuery = rewrite("select SUM(msr2) from testCube" + " where " + 
TWO_DAYS_RANGE, conf);
     whereClauses = new HashMap<String, String>();
-    whereClauses.put(CubeTestSetup.getDbName() + "c1_testfact", 
TestBetweenTimeRangeWriter.getBetweenClause(cubeName,
-      "dt", getUptoHour(CubeTestSetup.TWODAYS_BACK),
-      getUptoHour(CubeTestSetup.NOW), TestTimeRangeWriter.DB_FORMAT));
+    whereClauses.put(getDbName() + "c1_testfact", 
TestBetweenTimeRangeWriter.getBetweenClause(cubeName,
+      "dt", getUptoHour(TWODAYS_BACK),
+      getUptoHour(NOW), TestTimeRangeWriter.DB_FORMAT));
     expected = getExpectedQuery(cubeName, "select sum(testcube.msr2) FROM ", 
null, null, whereClauses);
     System.out.println("HQL:" + hqlQuery);
     TestCubeRewriter.compareQueries(hqlQuery, expected);
@@ -150,20 +144,19 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
   public void testCubeQueryWithTimeDim() throws Exception {
     Configuration tconf = new Configuration(conf);
     // hourly partitions for two days
-    tconf.setBoolean(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, true);
+    tconf.setBoolean(FAIL_QUERY_ON_PARTIAL_DATA, true);
     tconf.set(CubeQueryConfUtil.DRIVER_SUPPORTED_STORAGES, "C4");
     tconf.setBoolean(CubeQueryConfUtil.REPLACE_TIMEDIM_WITH_PART_COL, false);
     tconf.set(CubeQueryConfUtil.PART_WHERE_CLAUSE_DATE_FORMAT, "yyyy-MM-dd 
HH:mm:ss");
     tconf.set(CubeQueryConfUtil.getValidUpdatePeriodsKey("testfact", "C4"), 
"MONTHLY,DAILY,HOURLY");
 
     String query =
-      "SELECT test_time_dim, msr2 FROM testCube where " + 
"time_range_in(test_time_dim, '"
-        + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + "','" + 
CubeTestSetup.getDateUptoHours(NOW) + "')";
+      "SELECT test_time_dim, msr2 FROM testCube where " + TWO_DAYS_RANGE_TTD;
     String hqlQuery = rewrite(query, tconf);
     Map<String, String> whereClauses = new HashMap<String, String>();
-    whereClauses.put(CubeTestSetup.getDbName() + "c4_testfact2", 
TestBetweenTimeRangeWriter.getBetweenClause("hourdim",
-      "full_hour", getUptoHour(CubeTestSetup.TWODAYS_BACK),
-      getUptoHour(getOneLess(CubeTestSetup.NOW, 
UpdatePeriod.HOURLY.calendarField())), TestTimeRangeWriter.DB_FORMAT));
+    whereClauses.put(getDbName() + "c4_testfact2", 
TestBetweenTimeRangeWriter.getBetweenClause("hourdim",
+      "full_hour", getUptoHour(TWODAYS_BACK),
+      getUptoHour(getOneLess(NOW, UpdatePeriod.HOURLY.calendarField())), 
TestTimeRangeWriter.DB_FORMAT));
     System.out.println("HQL:" + hqlQuery);
     String expected =
       getExpectedQuery(cubeName, "select hourdim.full_hour, sum(testcube.msr2) 
FROM ", " join " + getDbName()
@@ -172,8 +165,7 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
     TestCubeRewriter.compareQueries(hqlQuery, expected);
 
     query =
-      "SELECT msr2 FROM testCube where " + "time_range_in(test_time_dim, '"
-        + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + "','" + 
CubeTestSetup.getDateUptoHours(NOW) + "')";
+      "SELECT msr2 FROM testCube where " + TWO_DAYS_RANGE_TTD;
     hqlQuery = rewrite(query, tconf);
     System.out.println("HQL:" + hqlQuery);
     expected =
@@ -182,9 +174,7 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
     TestCubeRewriter.compareQueries(hqlQuery, expected);
 
     query =
-      "SELECT msr2 FROM testCube where testcube.cityid > 2 and " + 
"time_range_in(test_time_dim, '"
-        + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + "','" + 
CubeTestSetup.getDateUptoHours(NOW)
-        + "') and testcube.cityid != 5";
+      "SELECT msr2 FROM testCube where testcube.cityid > 2 and " + 
TWO_DAYS_RANGE_TTD + " and testcube.cityid != 5";
     hqlQuery = rewrite(query, tconf);
     System.out.println("HQL:" + hqlQuery);
     expected =
@@ -196,20 +186,18 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
     // multiple range query
     hqlQuery =
       rewrite(
-        "select SUM(msr2) from testCube" + " where 
time_range_in(test_time_dim, '"
-          + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + "','" + 
CubeTestSetup.getDateUptoHours(NOW) + "')"
-          + " OR time_range_in(test_time_dim, '" + 
CubeTestSetup.getDateUptoHours(BEFORE_4_DAYS_START) + "','"
-          + CubeTestSetup.getDateUptoHours(BEFORE_4_DAYS_END) + "')", tconf);
+        "select SUM(msr2) from testCube" + " where " + TWO_DAYS_RANGE_TTD
+          + " OR " + TWO_DAYS_RANGE_TTD_BEFORE_4_DAYS, tconf);
 
-    whereClauses = new HashMap<String, String>();
+    whereClauses = new HashMap<>();
     whereClauses.put(
-      CubeTestSetup.getDbName() + "c4_testfact2",
-      TestBetweenTimeRangeWriter.getBetweenClause("hourdim", "full_hour", 
getUptoHour(CubeTestSetup.TWODAYS_BACK),
-        getUptoHour(getOneLess(CubeTestSetup.NOW, 
UpdatePeriod.HOURLY.calendarField())),
+      getDbName() + "c4_testfact2",
+      TestBetweenTimeRangeWriter.getBetweenClause("hourdim", "full_hour", 
getUptoHour(TWODAYS_BACK),
+        getUptoHour(getOneLess(NOW, UpdatePeriod.HOURLY.calendarField())),
         TestTimeRangeWriter.DB_FORMAT)
         + " OR "
-        + TestBetweenTimeRangeWriter.getBetweenClause("hourdim", "full_hour", 
getUptoHour(BEFORE_4_DAYS_START),
-        getUptoHour(getOneLess(BEFORE_4_DAYS_END, 
UpdatePeriod.HOURLY.calendarField())),
+        + TestBetweenTimeRangeWriter.getBetweenClause("hourdim", "full_hour", 
getUptoHour(BEFORE_6_DAYS),
+        getUptoHour(getOneLess(BEFORE_4_DAYS, 
UpdatePeriod.HOURLY.calendarField())),
         TestTimeRangeWriter.DB_FORMAT));
     expected =
       getExpectedQuery(cubeName, "select sum(testcube.msr2) FROM ", " join " + 
getDbName()
@@ -219,10 +207,8 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
 
     hqlQuery =
       rewrite(
-        "select to_date(test_time_dim), SUM(msr2) from testCube" + " where 
time_range_in(test_time_dim, '"
-          + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + "','" + 
CubeTestSetup.getDateUptoHours(NOW) + "')"
-          + " OR time_range_in(test_time_dim, '" + 
CubeTestSetup.getDateUptoHours(BEFORE_4_DAYS_START) + "','"
-          + CubeTestSetup.getDateUptoHours(BEFORE_4_DAYS_END) + "')", tconf);
+        "select to_date(test_time_dim), SUM(msr2) from testCube" + " where " + 
TWO_DAYS_RANGE_TTD
+          + " OR " + TWO_DAYS_RANGE_TTD_BEFORE_4_DAYS, tconf);
 
     expected =
       getExpectedQuery(cubeName, "select to_date(hourdim.full_hour), 
sum(testcube.msr2) FROM ", " join "
@@ -236,20 +222,19 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
   public void testCubeQueryWithTimeDimThruChain() throws Exception {
     // hourly partitions for two days
     Configuration tconf = new Configuration(conf);
-    tconf.setBoolean(CubeQueryConfUtil.FAIL_QUERY_ON_PARTIAL_DATA, true);
+    tconf.setBoolean(FAIL_QUERY_ON_PARTIAL_DATA, true);
     tconf.set(CubeQueryConfUtil.DRIVER_SUPPORTED_STORAGES, "C4");
     tconf.setBoolean(CubeQueryConfUtil.REPLACE_TIMEDIM_WITH_PART_COL, false);
     tconf.set(CubeQueryConfUtil.PART_WHERE_CLAUSE_DATE_FORMAT, "yyyy-MM-dd 
HH:mm:ss");
     tconf.set(CubeQueryConfUtil.getValidUpdatePeriodsKey("testfact", "C4"), 
"MONTHLY,DAILY,HOURLY");
 
     String query =
-      "SELECT test_time_dim2, msr2 FROM testCube where " + 
"time_range_in(test_time_dim2, '"
-        + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + "','" + 
CubeTestSetup.getDateUptoHours(NOW) + "')";
+      "SELECT test_time_dim2, msr2 FROM testCube where " + TWO_DAYS_RANGE_TTD2;
     String hqlQuery = rewrite(query, tconf);
     Map<String, String> whereClauses = new HashMap<String, String>();
-    whereClauses.put(CubeTestSetup.getDbName() + "c4_testfact2", 
TestBetweenTimeRangeWriter.getBetweenClause(
-      "timehourchain", "full_hour", getUptoHour(CubeTestSetup.TWODAYS_BACK),
-      getUptoHour(getOneLess(CubeTestSetup.NOW, 
UpdatePeriod.HOURLY.calendarField())), TestTimeRangeWriter.DB_FORMAT));
+    whereClauses.put(getDbName() + "c4_testfact2", 
TestBetweenTimeRangeWriter.getBetweenClause(
+      "timehourchain", "full_hour", getUptoHour(TWODAYS_BACK),
+      getUptoHour(getOneLess(NOW, UpdatePeriod.HOURLY.calendarField())), 
TestTimeRangeWriter.DB_FORMAT));
     System.out.println("HQL:" + hqlQuery);
     String expected =
       getExpectedQuery(cubeName, "select timehourchain.full_hour, 
sum(testcube.msr2) FROM ", " join " + getDbName()
@@ -258,8 +243,7 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
     TestCubeRewriter.compareQueries(hqlQuery, expected);
 
     query =
-      "SELECT msr2 FROM testCube where " + "time_range_in(test_time_dim2, '"
-        + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + "','" + 
CubeTestSetup.getDateUptoHours(NOW) + "')";
+      "SELECT msr2 FROM testCube where " + TWO_DAYS_RANGE_TTD2;
     hqlQuery = rewrite(query, tconf);
     System.out.println("HQL:" + hqlQuery);
     expected =
@@ -269,9 +253,7 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
     TestCubeRewriter.compareQueries(hqlQuery, expected);
 
     query =
-      "SELECT msr2 FROM testCube where testcube.cityid > 2 and " + 
"time_range_in(test_time_dim2, '"
-        + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + "','" + 
CubeTestSetup.getDateUptoHours(NOW)
-        + "') and testcube.cityid != 5";
+      "SELECT msr2 FROM testCube where testcube.cityid > 2 and " + 
TWO_DAYS_RANGE_TTD2 + " and testcube.cityid != 5";
     hqlQuery = rewrite(query, tconf);
     System.out.println("HQL:" + hqlQuery);
     expected =
@@ -283,20 +265,18 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
     // multiple range query
     hqlQuery =
       rewrite(
-        "select SUM(msr2) from testCube" + " where 
time_range_in(test_time_dim2, '"
-          + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + "','" + 
CubeTestSetup.getDateUptoHours(NOW) + "')"
-          + " OR time_range_in(test_time_dim2, '" + 
CubeTestSetup.getDateUptoHours(BEFORE_4_DAYS_START) + "','"
-          + CubeTestSetup.getDateUptoHours(BEFORE_4_DAYS_END) + "')", tconf);
+        "select SUM(msr2) from testCube" + " where " + TWO_DAYS_RANGE_TTD2
+          + " OR " + TWO_DAYS_RANGE_TTD2_BEFORE_4_DAYS, tconf);
 
     whereClauses = new HashMap<String, String>();
     whereClauses.put(
-      CubeTestSetup.getDbName() + "c4_testfact2",
-      TestBetweenTimeRangeWriter.getBetweenClause("timehourchain", 
"full_hour", getUptoHour(CubeTestSetup.TWODAYS_BACK),
-        getUptoHour(getOneLess(CubeTestSetup.NOW, 
UpdatePeriod.HOURLY.calendarField())),
+      getDbName() + "c4_testfact2",
+      TestBetweenTimeRangeWriter.getBetweenClause("timehourchain", 
"full_hour", getUptoHour(TWODAYS_BACK),
+        getUptoHour(getOneLess(NOW, UpdatePeriod.HOURLY.calendarField())),
         TestTimeRangeWriter.DB_FORMAT)
         + " OR "
-        + TestBetweenTimeRangeWriter.getBetweenClause("timehourchain", 
"full_hour", getUptoHour(BEFORE_4_DAYS_START),
-        getUptoHour(getOneLess(BEFORE_4_DAYS_END, 
UpdatePeriod.HOURLY.calendarField())),
+        + TestBetweenTimeRangeWriter.getBetweenClause("timehourchain", 
"full_hour", getUptoHour(BEFORE_6_DAYS),
+        getUptoHour(getOneLess(BEFORE_4_DAYS, 
UpdatePeriod.HOURLY.calendarField())),
         TestTimeRangeWriter.DB_FORMAT));
     expected =
       getExpectedQuery(cubeName, "select sum(testcube.msr2) FROM ", " join " + 
getDbName()
@@ -307,10 +287,8 @@ public class TestTimeRangeWriterWithQuery extends 
TestQueryRewrite {
 
     hqlQuery =
       rewrite(
-        "select to_date(test_time_dim2), SUM(msr2) from testCube" + " where 
time_range_in(test_time_dim2, '"
-          + CubeTestSetup.getDateUptoHours(TWODAYS_BACK) + "','" + 
CubeTestSetup.getDateUptoHours(NOW) + "')"
-          + " OR time_range_in(test_time_dim2, '" + 
CubeTestSetup.getDateUptoHours(BEFORE_4_DAYS_START) + "','"
-          + CubeTestSetup.getDateUptoHours(BEFORE_4_DAYS_END) + "')", tconf);
+        "select to_date(test_time_dim2), SUM(msr2) from testCube" + " where " 
+ TWO_DAYS_RANGE_TTD2
+          + " OR " +TWO_DAYS_RANGE_TTD2_BEFORE_4_DAYS, tconf);
 
     expected =
       getExpectedQuery(cubeName, "select to_date(timehourchain.full_hour), 
sum(testcube.msr2) FROM ", " join "

http://git-wip-us.apache.org/repos/asf/lens/blob/7c7c86da/lens-server/src/main/java/org/apache/lens/server/query/QueryResultPurger.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryResultPurger.java 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryResultPurger.java
index 54c6574..2be11ea 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/query/QueryResultPurger.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/query/QueryResultPurger.java
@@ -28,7 +28,7 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ThreadFactory;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.lens.cube.parse.DateUtil;
+import org.apache.lens.cube.metadata.DateUtil;
 import org.apache.lens.server.LensServices;
 import org.apache.lens.server.api.error.LensException;
 import org.apache.lens.server.api.metrics.MetricsService;

Reply via email to