You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by sh...@apache.org on 2015/12/30 08:10:53 UTC
[34/50] [abbrv] lens git commit: LENS-885: Cleanup of Cube test cases
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;