http://git-wip-us.apache.org/repos/asf/lens/blob/cb5e2a77/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java index ba8a5e4..93dbfc3 100644 --- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java +++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java @@ -37,7 +37,6 @@ import org.apache.lens.cube.error.LensCubeErrorCode; import org.apache.lens.cube.error.NoCandidateFactAvailableException; import org.apache.lens.cube.metadata.TimeRange; import org.apache.lens.cube.metadata.UpdatePeriod; -import org.apache.lens.cube.parse.CandidateTablePruneCause.CandidateTablePruneCode; import org.apache.lens.server.api.error.LensException; import org.apache.commons.lang.time.DateUtils; @@ -68,15 +67,12 @@ public class TestBaseCubeQueries extends TestQueryRewrite { } @Test - public void testNoCandidateFactAvailableExceptionCompareTo() throws Exception { - //maxCause : UNSUPPORTED_STORAGE - NoCandidateFactAvailableException ne1 = - (NoCandidateFactAvailableException)getLensExceptionInRewrite( + public void testNoUnionCandidateAndNoJoinCandidateErrorWeight() throws Exception { + LensException e1 = getLensExceptionInRewrite( "select dim1, test_time_dim, msr3, msr13 from basecube where " + TWO_DAYS_RANGE, conf); - //maxCause : STORAGE_NOT_AVAILABLE_IN_RANGE - NoCandidateFactAvailableException ne2 = (NoCandidateFactAvailableException) - getLensExceptionInRewrite("select dim1 from " + cubeName + " where " + LAST_YEAR_RANGE, getConf()); - assertEquals(ne1.compareTo(ne2), -1); + LensException e2 = getLensExceptionInRewrite("select dim1 from " + cubeName + + " where " + LAST_YEAR_RANGE, getConf()); + assertEquals(e1.getErrorWeight() - e2.getErrorWeight(), 1); } @Test @@ -92,53 +88,9 @@ public class TestBaseCubeQueries extends TestQueryRewrite { e = getLensExceptionInRewrite("select dim1, test_time_dim, msr3, msr13 from basecube where " + TWO_DAYS_RANGE, conf); assertEquals(e.getErrorCode(), - LensCubeErrorCode.NO_CANDIDATE_FACT_AVAILABLE.getLensErrorInfo().getErrorCode()); - NoCandidateFactAvailableException ne = (NoCandidateFactAvailableException) e; - //ne.briefAndDetailedError.getBriefCause() - //ne.getJsonMessage().brief - assertTrue(CandidateTablePruneCode.UNSUPPORTED_STORAGE.errorFormat.equals(ne.getJsonMessage().getBrief())); -// PruneCauses.BriefAndDetailedError pruneCauses = ne.getJsonMessage(); -// String regexp = String.format(CandidateTablePruneCode.UNSUPPORTED_STORAGE.errorFormat, -// "Column Sets: (.*?)", "queriable together"); -// Matcher matcher = Pattern.compile(regexp).matcher(pruneCauses.getBrief()); -// assertTrue(matcher.matches(), pruneCauses.getBrief()); -// assertEquals(matcher.groupCount(), 1); -// String columnSetsStr = matcher.group(1); -// assertNotEquals(columnSetsStr.indexOf("test_time_dim"), -1, columnSetsStr); -// assertNotEquals(columnSetsStr.indexOf("msr3, msr13"), -1); -// -// /** -// * Verifying the BriefAndDetailedError: -// * 1. Check for missing columns(COLUMN_NOT_FOUND) -// * and check the respective tables for each COLUMN_NOT_FOUND -// * 2. check for ELEMENT_IN_SET_PRUNED -// * -// */ -// boolean columnNotFound = false; -// List<String> testTimeDimFactTables = Arrays.asList("c1_testfact3_raw_base", -// "c1_testfact5_base", "c1_testfact6_base", "c1_testfact1_raw_base", -// "c1_testfact4_raw_base", "c1_testfact3_base"); -// List<String> factTablesForMeasures = Arrays.asList( -// "c2_testfact2_base","c2_testfact_deprecated","c1_union_join_ctx_fact1","c1_union_join_ctx_fact2", -// "c1_union_join_ctx_fact3","c1_union_join_ctx_fact5","c1_testfact2_base", -// "c1_union_join_ctx_fact6","c1_testfact2_raw_base","c1_testfact5_raw_base", -// "c3_testfact_deprecated","c1_testfact_deprecated","c4_testfact_deprecated", -// "c3_testfact2_base","c4_testfact2_base"); -// for (Map.Entry<String, List<CandidateTablePruneCause>> entry : pruneCauses.getDetails().entrySet()) { -// if (entry.getValue().contains(CandidateTablePruneCause.columnNotFound( -// CandidateTablePruneCode.COLUMN_NOT_FOUND, "test_time_dim"))) { -// columnNotFound = true; -// compareStrings(testTimeDimFactTables, entry); -// } -// if (entry.getValue().contains(CandidateTablePruneCause.columnNotFound( -// CandidateTablePruneCode.COLUMN_NOT_FOUND, "msr3", "msr13"))) { -// columnNotFound = true; -// compareStrings(factTablesForMeasures, entry); -// } -// } -// Assert.assertTrue(columnNotFound); - // assertEquals(pruneCauses.getDetails().get("testfact1_base"), - // Arrays.asList(new CandidateTablePruneCause(CandidateTablePruneCode.ELEMENT_IN_SET_PRUNED))); + LensCubeErrorCode.NO_JOIN_CANDIDATE_AVAILABLE.getLensErrorInfo().getErrorCode()); + assertTrue(e.getMessage().contains("[msr3, msr13]")); + } private void compareStrings(List<String> factTablesList, Map.Entry<String, List<CandidateTablePruneCause>> entry) { @@ -195,16 +147,16 @@ public class TestBaseCubeQueries extends TestQueryRewrite { Set<String> storageCandidates = new HashSet<String>(); Set<StorageCandidate> scSet = CandidateUtil.getStorageCandidates(ctx.getCandidates()); for (StorageCandidate sc : scSet) { - storageCandidates.add(sc.getName()); + storageCandidates.add(sc.getStorageTable()); } Assert.assertTrue(storageCandidates.contains("c1_testfact1_base")); Assert.assertTrue(storageCandidates.contains("c1_testfact2_base")); String hqlQuery = ctx.toHQL(); String expected1 = - getExpectedQuery(cubeName, "SELECT sum(0.0) as `alias0`, sum((basecube.msr12)) as `alias1` FROM ", null, + getExpectedQuery(cubeName, "SELECT 0.0 as `alias0`, sum((basecube.msr12)) as `alias1` FROM ", null, null, getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = - getExpectedQuery(cubeName, "SELECT sum((basecube.msr2)) as `alias0`, sum(0.0) as `alias1` FROM ", null, + getExpectedQuery(cubeName, "SELECT sum((basecube.msr2)) as `alias0`, 0.0 as `alias1` FROM ", null, null, getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -221,21 +173,21 @@ public class TestBaseCubeQueries extends TestQueryRewrite { Set<String> storageCandidates = new HashSet<String>(); Set<StorageCandidate> scSet = CandidateUtil.getStorageCandidates(ctx.getCandidates()); for (StorageCandidate sc : scSet) { - storageCandidates.add(sc.getName()); + storageCandidates.add(sc.getStorageTable()); } Assert.assertEquals(storageCandidates.size(), 3); Assert.assertTrue(storageCandidates.contains("c1_testfact1_base")); Assert.assertTrue(storageCandidates.contains("c1_testfact2_base")); Assert.assertTrue(storageCandidates.contains("c1_testfact3_base")); String hqlQuery = ctx.toHQL(); - String expected1 = getExpectedQuery(cubeName, "SELECT sum(0.0) as `alias0`, count(0.0) as `alias1`, " + String expected1 = getExpectedQuery(cubeName, "SELECT 0.0 as `alias0`, 0.0 as `alias1`, " + "sum((basecube.msr12)) as `alias2` FROM ", null, null, getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); - String expected2 = getExpectedQuery(cubeName, "SELECT sum((basecube.msr2)) as `alias0`, count(0.0) as `alias1`, " - + "sum(0.0) as `alias2` FROM ", null, + String expected2 = getExpectedQuery(cubeName, "SELECT sum((basecube.msr2)) as `alias0`, 0.0 as `alias1`, " + + "0.0 as `alias2` FROM ", null, null, getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); - String expected3 = getExpectedQuery(cubeName, "SELECT sum(0.0) as `alias0`, count((basecube.msr14)) as `alias1`, " - + "sum(0.0) as `alias2` FROM ", null, null, + String expected3 = getExpectedQuery(cubeName, "SELECT 0.0 as `alias0`, count((basecube.msr14)) as `alias1`, " + + "0.0 as `alias2` FROM ", null, null, getWhereForDailyAndHourly2days(cubeName, "C1_testFact3_BASE")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -251,9 +203,9 @@ public class TestBaseCubeQueries extends TestQueryRewrite { String hqlQuery = rewrite("select dim1, roundedmsr2, msr12 from basecube" + " where " + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum((basecube.msr2)) as `alias1`, " - + "sum(0.0) as `alias2` FROM ", null, " group by basecube.dim1", + + "0.0 as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); - String expected2 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(0.0) as `alias1`, " + String expected2 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, " + "sum((basecube.msr12)) as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); compareContains(expected1, hqlQuery); @@ -271,11 +223,11 @@ public class TestBaseCubeQueries extends TestQueryRewrite { Configuration tConf = new Configuration(conf); tConf.setBoolean(CubeQueryConfUtil.LIGHTEST_FACT_FIRST, true); String hqlQuery = rewrite("select dim1, roundedmsr2, msr12 from basecube" + " where " + TWO_DAYS_RANGE, tConf); - String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(0.0) as `alias1`, " + String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, " + "sum((basecube.msr12)) as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum((basecube.msr2)) " - + "as `alias1`, sum(0.0) as `alias2` FROM ", null, " group by basecube.dim1", + + "as `alias1`, 0.0 as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -292,11 +244,11 @@ public class TestBaseCubeQueries extends TestQueryRewrite { tConf.setBoolean(CubeQueryConfUtil.LIGHTEST_FACT_FIRST, true); String hqlQuery = rewrite("select dim1, roundedmsr2, flooredmsr12 from basecube" + " where " + TWO_DAYS_RANGE, tConf); - String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(0.0) as `alias1`, " + String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, " + "sum((basecube.msr12)) as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum((basecube.msr2)) " - + "as `alias1`, sum(0.0) as `alias2` FROM ", null, " group by basecube.dim1", + + "as `alias1`, 0.0 as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -313,10 +265,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { String hqlQuery = rewrite("select dim1, msr12, roundedmsr2 from basecube" + " where " + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum((basecube.msr12)) as `alias1`, " - + "sum(0.0) as `alias2` FROM", null, " group by basecube.dim1", + + "0.0 as `alias2` FROM", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim1) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr2)) as `alias2` FROM ", null, + "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, sum((basecube.msr2)) as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -335,17 +287,17 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, " SELECT (basecube.dim1) as `alias0`, (basecube.d_time) as `alias1`, " - + "sum((basecube.msr12)) as `alias2`, sum(0.0) as `alias3`, max(0.0) as `alias4`, max(0.0) as `alias5` FROM ", + + "sum((basecube.msr12)) as `alias2`, 0.0 as `alias3`, 0.0 as `alias4`, 0.0 as `alias5` FROM ", null, " group by basecube.dim1, (basecube.d_time)", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = getExpectedQuery( cubeName, - "SELECT (basecube.dim1) as `alias0`, (basecube.d_time) as `alias1`, sum(0.0) as `alias2`, " - + "sum((basecube.msr2)) as `alias3`, max(0.0) as `alias4`, max((basecube.msr3)) as `alias5` FROM ", null, + "SELECT (basecube.dim1) as `alias0`, (basecube.d_time) as `alias1`, 0.0 as `alias2`, " + + "sum((basecube.msr2)) as `alias3`, 0.0 as `alias4`, max((basecube.msr3)) as `alias5` FROM ", null, " group by basecube.dim1, (basecube.d_time)", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); String expected3 = - getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.d_time) as `alias1`, sum(0.0) " - + "as `alias2`, sum(0.0) as `alias3`, max((basecube.msr13)) as `alias4`, max(0.0) as `alias5` FROM ", null, + getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.d_time) as `alias1`, 0.0 " + + "as `alias2`, 0.0 as `alias3`, max((basecube.msr13)) as `alias4`, 0.0 as `alias5` FROM ", null, " group by basecube.dim1, (basecube.d_time)", getWhereForDailyAndHourly2days(cubeName, "c1_testfact3_base")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -364,10 +316,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { // query two dim attributes String hqlQuery = rewrite("select dim1, dim11, msr12, roundedmsr2 from basecube where " + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, " - + "sum((basecube.msr12)) as `alias2`, sum(0.0) as `alias3` FROM ", null, " group by basecube.dim1", + + "sum((basecube.msr12)) as `alias2`, 0.0 as `alias3` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, " - + "sum(0.0) as `alias2`, sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1", + + "0.0 as `alias2`, sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -406,10 +358,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { rewrite("select dim1 d1, msr12 `my msr12`, roundedmsr2 m2 from basecube where " + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum((basecube.msr12)) as `alias1`, " - + "sum(0.0) as `alias2` FROM ", null, " group by basecube.dim1", + + "0.0 as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = - getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr2)) " + getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, sum((basecube.msr2)) " + "as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); @@ -428,10 +380,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum((basecube.msr12)) as `alias1`, " - + "sum(0.0) as `alias2` FROM ", null, " group by basecube.dim1", + + "0.0 as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = - getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr2)) " + getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, sum((basecube.msr2)) " + "as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); @@ -450,10 +402,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum((basecube.msr12)) as `alias1`, " - + "sum(0.0) as `alias2` FROM ", null, " group by basecube.dim1", + + "0.0 as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = - getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr2)) " + getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, sum((basecube.msr2)) " + "as `alias2` FROM ", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); @@ -473,10 +425,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum((basecube.msr12)) as `alias1`, " - + "sum(0.0) as `alias2` FROM", null, " group by basecube.dim1", + + "0.0 as `alias2` FROM", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = - getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr2)) " + getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, sum((basecube.msr2)) " + "as `alias2` FROM", null, " group by basecube.dim1", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); @@ -494,12 +446,12 @@ public class TestBaseCubeQueries extends TestQueryRewrite { rewrite("select reverse(dim1), ltrim(dim1), msr12, roundedmsr2 from basecube where " + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, "SELECT reverse((basecube.dim1)) as `alias0`, ltrim((basecube.dim1)) as `alias1`, " - + "sum((basecube.msr12)) as `alias2`, sum(0.0) as `alias3` FROM ", null, + + "sum((basecube.msr12)) as `alias2`, 0.0 as `alias3` FROM ", null, " group by reverse(basecube.dim1), ltrim(basecube.dim1)", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = getExpectedQuery(cubeName, "SELECT reverse((basecube.dim1)) as `alias0`, ltrim((basecube.dim1)) as `alias1`, " - + "sum(0.0) as `alias2`, sum((basecube.msr2)) as `alias3` FROM ", null, + + "0.0 as `alias2`, sum((basecube.msr2)) as `alias3` FROM ", null, " group by reverse(basecube.dim1), ltrim(basecube.dim1)", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); @@ -519,11 +471,11 @@ public class TestBaseCubeQueries extends TestQueryRewrite { conf); String expected1 = getExpectedQuery(cubeName, "SELECT reverse((basecube.dim1)) as `alias0`, max((basecube.msr13)) as `alias1`, " - + "count((basecube.msr14)) as `alias2`, sum(0.0) as `alias3` FROM", null, + + "count((basecube.msr14)) as `alias2`, 0.0 as `alias3` FROM", null, " group by reverse(basecube.dim1)", getWhereForDailyAndHourly2days(cubeName, "C1_testFact3_BASE")); String expected2 = - getExpectedQuery(cubeName, "SELECT reverse((basecube.dim1)) as `alias0`, max(0.0) as `alias1`, " - + "count(0.0) as `alias2`, sum((basecube.msr2)) as `alias3` FROM", null, + getExpectedQuery(cubeName, "SELECT reverse((basecube.dim1)) as `alias0`, 0.0 as `alias1`, " + + "0.0 as `alias2`, sum((basecube.msr2)) as `alias3` FROM", null, " group by reverse(basecube.dim1)", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -541,10 +493,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { String hqlQuery = rewrite("select dim1, avg(msr12), avg(msr2) from basecube where " + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, avg((basecube.msr12)) as `alias1`," - + " avg(0.0) as `alias2` FROM ", null, " group by basecube.dim1", + + " 0.0 as `alias2` FROM ", null, " group by basecube.dim1", getWhereForHourly2days(cubeName, "C1_testfact2_raw_base")); String expected2 = - getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, avg(0.0) as `alias1`, avg((basecube.msr2)) " + getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, avg((basecube.msr2)) " + "as `alias2` FROM ", null, " group by basecube.dim1", getWhereForHourly2days(cubeName, "C1_testfact1_raw_base")); compareContains(expected1, hqlQuery); @@ -560,13 +512,13 @@ public class TestBaseCubeQueries extends TestQueryRewrite { // query with join String hqlQuery = rewrite("select dim2chain.name, msr12, roundedmsr2 from basecube where " + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, - "SELECT (dim2chain.name) as `alias0`, sum((basecube.msr12)) as `alias1`, sum(0.0) as `alias2` FROM ", + "SELECT (dim2chain.name) as `alias0`, sum((basecube.msr12)) as `alias1`, 0.0 as `alias2` FROM ", " JOIN " + getDbName() + "c1_testdim2tbl dim2chain ON basecube.dim2 = " + " dim2chain.id and (dim2chain.dt = 'latest') ", null, " group by dim2chain.name", null, getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); String expected2 = getExpectedQuery(cubeName, - "SELECT (dim2chain.name) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr2)) as `alias2` FROM ", " JOIN " + "SELECT (dim2chain.name) as `alias0`, 0.0 as `alias1`, sum((basecube.msr2)) as `alias2` FROM ", " JOIN " + getDbName() + "c1_testdim2tbl dim2chain ON basecube.dim2 = " + " dim2chain.id and (dim2chain.dt = 'latest') ", null, @@ -585,12 +537,12 @@ public class TestBaseCubeQueries extends TestQueryRewrite { // query with denorm variable String hqlQuery = rewrite("select dim2, msr13, roundedmsr2 from basecube where " + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, "SELECT (dim2chain.id) as `alias0`, max((basecube.msr13)) " - + "as `alias1`, sum(0.0) as `alias2` FROM ", " JOIN " + getDbName() + + "as `alias1`, 0.0 as `alias2` FROM ", " JOIN " + getDbName() + "c1_testdim2tbl dim2chain ON basecube.dim12 = " + " dim2chain.id and (dim2chain.dt = 'latest') ", null, " group by dim2chain.id", null, getWhereForHourly2days(cubeName, "C1_testFact3_RAW_BASE")); String expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim2) as `alias0`, max(0.0) as `alias1`, sum((basecube.msr2)) as `alias2` FROM ", null, + "SELECT (basecube.dim2) as `alias0`, 0.0 as `alias1`, sum((basecube.msr2)) as `alias2` FROM ", null, " group by basecube.dim2", getWhereForHourly2days(cubeName, "C1_testfact1_raw_base")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -607,12 +559,12 @@ public class TestBaseCubeQueries extends TestQueryRewrite { String hqlQuery = rewrite("select dim2, msr13, roundedmsr2 from basecube where dim2 == 10 and " + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, "SELECT (dim2chain.id) as `alias0`, max((basecube.msr13)) " - + "as `alias1`, sum(0.0) as `alias2` FROM ", " JOIN " + getDbName() + + "as `alias1`, 0.0 as `alias2` FROM ", " JOIN " + getDbName() + "c1_testdim2tbl dim2chain ON basecube.dim12 = " + " dim2chain.id and (dim2chain.dt = 'latest') ", "dim2chain.id == 10", " group by dim2chain.id", null, getWhereForHourly2days(cubeName, "C1_testFact3_RAW_BASE")); String expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim2) as `alias0`, max(0.0) as `alias1`, sum((basecube.msr2)) as `alias2` FROM ", + "SELECT (basecube.dim2) as `alias0`, 0.0 as `alias1`, sum((basecube.msr2)) as `alias2` FROM ", "basecube.dim2 == 10", " group by basecube.dim2", getWhereForHourly2days(cubeName, "C1_testfact1_raw_base")); compareContains(expected1, hqlQuery); @@ -634,14 +586,14 @@ public class TestBaseCubeQueries extends TestQueryRewrite { conf); String expected1 = getExpectedQuery(cubeName, "SELECT (((basecube.dim1) != 'x') and ((dim2chain.id) != 10)) as `alias0`, " - + "sum(0.0) as `alias1`, avg(((basecube.msr13) + (basecube.msr14))) as `alias2` FROM ", " JOIN " + + "0.0 as `alias1`, avg(((basecube.msr13) + (basecube.msr14))) as `alias2` FROM ", " JOIN " + getDbName() + "c1_testdim2tbl dim2chain ON basecube.dim12 = " + " dim2chain.id and (dim2chain.dt = 'latest') ", null, " group by basecube.dim1 != 'x' AND dim2chain.id != 10", null, getWhereForHourly2days(cubeName, "C1_testfact3_raw_base")); String expected2 = getExpectedQuery(cubeName, "SELECT (((basecube.dim1) != 'x') and ((basecube.dim2) != 10)) as `alias0`, " - + "sum((basecube.msr2)) as `alias1`, avg(0.0) as `alias2` FROM", null, + + "sum((basecube.msr2)) as `alias1`, 0.0 as `alias2` FROM", null, " group by basecube.dim1 != 'x' AND basecube.dim2 != 10", getWhereForHourly2days(cubeName, "C1_testfact1_raw_base")); compareContains(expected1, hqlQuery); @@ -664,14 +616,14 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + TWO_DAYS_RANGE, conf); String expected1 = getExpectedQuery(cubeName, "SELECT (((basecube.dim1) != 'x') and ((dim2chain.id) != 10)) as `alias0`, " - + "sum(0.0) as `alias1`, avg(((basecube.msr13) + (basecube.msr14))) as `alias2` FROM ", " JOIN " + getDbName() + + "0.0 as `alias1`, avg(((basecube.msr13) + (basecube.msr14))) as `alias2` FROM ", " JOIN " + getDbName() + "c1_testdim2tbl dim2chain ON basecube.dim12 = " + " dim2chain.id and (dim2chain.dt = 'latest') ", "(basecube.dim1 != 'x' AND dim2chain.id != 10) == true", " group by basecube.dim1 != 'x' AND dim2chain.id != 10", null, getWhereForHourly2days(cubeName, "C1_testfact3_raw_base")); String expected2 = getExpectedQuery(cubeName, "SELECT (((basecube.dim1) != 'x') and ((basecube.dim2) != 10)) as `alias0`, " - + "sum((basecube.msr2)) as `alias1`, avg(0.0) as `alias2` FROM ", + + "sum((basecube.msr2)) as `alias1`, 0.0 as `alias2` FROM ", "(basecube.dim1 != 'x' AND basecube.dim2 != 10) == true", " group by basecube.dim1 != 'x' AND basecube.dim2 != 10", getWhereForHourly2days(cubeName, "C1_testfact1_raw_base")); @@ -692,12 +644,12 @@ public class TestBaseCubeQueries extends TestQueryRewrite { String hqlQuery = rewrite("select booleancut, round(sum(msr2)/1000), msr13 from basecube where " + TWO_DAYS_RANGE, tconf); String expected1 = - getExpectedQuery(cubeName, "SELECT (basecube.booleancut) as `alias0`, sum(0.0) as `alias1`, " + getExpectedQuery(cubeName, "SELECT (basecube.booleancut) as `alias0`, 0.0 as `alias1`, " + "max((basecube.msr13)) as `alias2` FROM", null, " " + "group by basecube.booleancut", getWhereForDailyAndHourly2days(cubeName, "C1_testfact6_base")); String expected2 = getExpectedQuery(cubeName, "SELECT (basecube.booleancut) as `alias0`, sum((basecube.msr2)) as `alias1`, " - + "max(0.0) as `alias2` FROM ", null, " group by basecube.booleancut", + + "0.0 as `alias2` FROM ", null, " group by basecube.booleancut", getWhereForDailyAndHourly2days(cubeName, "C1_testfact5_base")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -717,10 +669,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + TWO_DAYS_RANGE, tconf); String expected1 = getExpectedQuery(cubeName, "SELECT sum(case when ((basecube.dim22) = 'x') then (basecube.msr12) else 0 end) " - + "as `alias0`, sum(0.0) as `alias1` FROM ", null, null, + + "as `alias0`, 0.0 as `alias1` FROM ", null, null, getWhereForHourly2days(cubeName, "C1_testfact2_raw_base")); String expected2 = - getExpectedQuery(cubeName, "SELECT sum(0.0) as `alias0`, sum((basecube.msr1)) as `alias1` FROM ", null, null, + getExpectedQuery(cubeName, "SELECT 0.0 as `alias0`, sum((basecube.msr1)) as `alias1` FROM ", null, null, getWhereForHourly2days(cubeName, "c1_testfact1_raw_base")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -737,10 +689,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + TWO_DAYS_RANGE, tconf); String expected1 = getExpectedQuery(cubeName, "SELECT sum(case when ((basecube.dim13) = 'x') then (basecube.msr12) else 0 end) " - + "as `alias0`, sum(0.0) as `alias1` FROM ", null, null, + + "as `alias0`, 0.0 as `alias1` FROM ", null, null, getWhereForHourly2days(cubeName, "C1_testfact2_raw_base")); String expected2 = - getExpectedQuery(cubeName, "SELECT sum(0.0) as `alias0`, sum((basecube.msr1)) as `alias1` FROM ", null, null, + getExpectedQuery(cubeName, "SELECT 0.0 as `alias0`, sum((basecube.msr1)) as `alias1` FROM ", null, null, getWhereForHourly2days(cubeName, "c1_testfact1_raw_base")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -757,11 +709,11 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "where " + TWO_DAYS_RANGE, tconf); String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(case when ((basecube.dim13) = 'x') " - + "then (basecube.msr12) else 0 end) as `alias1`, sum(0.0) as `alias2` FROM ", null, + + "then (basecube.msr12) else 0 end) as `alias1`, 0.0 as `alias2` FROM ", null, " group by basecube.dim1 ", getWhereForHourly2days(cubeName, "C1_testfact2_raw_base")); String expected2 = - getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr1)) " + getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, sum((basecube.msr1)) " + "as `alias2` FROM", null, " group by basecube.dim1 ", getWhereForHourly2days(cubeName, "c1_testfact1_raw_base")); compareContains(expected1, hqlQuery); @@ -783,10 +735,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "and sum(msr1) > 500", tconf); String expected1 = getExpectedQuery(cubeName, "SELECT sum(case when ((basecube.dim13) = 'x') then (basecube.msr12) else 0 end) " - + "as `alias0`, sum(0.0) as `alias1` FROM ", null, "", + + "as `alias0`, 0.0 as `alias1` FROM ", null, "", getWhereForHourly2days(cubeName, "C1_testfact2_raw_base")); String expected2 = - getExpectedQuery(cubeName, "SELECT sum(0.0) as `alias0`, sum((basecube.msr1)) as `alias1` FROM ", null, "", + getExpectedQuery(cubeName, "SELECT 0.0 as `alias0`, sum((basecube.msr1)) as `alias1` FROM ", null, "", getWhereForHourly2days(cubeName, "c1_testfact1_raw_base")); compareContains(expected1, hqlQuery); compareContains(expected2, hqlQuery); @@ -805,10 +757,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "and sum(msr1) > 500", tconf); String expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(case when ((basecube.dim13) = 'x') then " - + "(basecube.msr12) else 0 end) as `alias1`, sum(0.0) as `alias2` FROM", null, " group by basecube.dim1", + + "(basecube.msr12) else 0 end) as `alias1`, 0.0 as `alias2` FROM", null, " group by basecube.dim1", getWhereForHourly2days(cubeName, "C1_testfact2_raw_base")); String expected2 = - getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr1)) " + getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, 0.0 as `alias1`, sum((basecube.msr1)) " + "as `alias2` FROM", null, " group by basecube.dim1", getWhereForHourly2days(cubeName, "c1_testfact1_raw_base")); compareContains(expected1, hqlQuery); @@ -903,10 +855,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "having roundedmsr2 > 0", conf); expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum((basecube.msr12)) " - + "as `alias2`, sum(0.0) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", + + "as `alias2`, 0.0 as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum(0.0) as `alias2`, " + "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, 0.0 as `alias2`, " + "sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); @@ -922,10 +874,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "having msr12 > 2 and roundedmsr2 > 0", conf); expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum((basecube.msr12)) as `alias2`, " - + "sum(0.0) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", + + "0.0 as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum(0.0) as `alias2`, " + "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, 0.0 as `alias2`, " + "sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); @@ -941,11 +893,11 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "having msr12+roundedmsr2 <= 1000 and msr12 > 2 and roundedmsr2 > 0", conf); expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum((basecube.msr12)) as `alias2`, " - + "sum(0.0) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", + + "0.0 as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum(0.0) as `alias2`, " + "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, 0.0 as `alias2`, " + "sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); @@ -961,10 +913,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "having msr12+roundedmsr2 <= 1000", conf); expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum((basecube.msr12)) as `alias2`, " - + "sum(0.0) as `alias3` FROM", null, " group by basecube.dim1, basecube.dim11", + + "0.0 as `alias3` FROM", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum(0.0) as `alias2`, sum((basecube.msr2)) " + "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, 0.0 as `alias2`, sum((basecube.msr2)) " + "as `alias3` FROM", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); @@ -981,10 +933,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "having round(msr12+roundedmsr2) <= 1000", conf); expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum((basecube.msr12)) as `alias2`, " - + "sum(0.0) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", + + "0.0 as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); expected2 = getExpectedQuery(cubeName, - " SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum(0.0) as `alias2`, " + " SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, 0.0 as `alias2`, " + "sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); @@ -1006,10 +958,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "having msr12 > 2 and roundedmsr2 > 0", conf); expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum((basecube.msr12)) as `alias2`, " - + "sum(0.0) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", + + "0.0 as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum(0.0) as `alias2`, " + "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, 0.0 as `alias2`, " + "sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); String begin = "select (basecube.alias0) as `dim1`, (basecube.alias1) as `dim11` from"; @@ -1024,10 +976,10 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "having msr12 > 2 and roundedmsr2 > 0 and msr2 > 100", conf); expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum((basecube.msr12)) as `alias2`, " - + "sum(0.0) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", + + "0.0 as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum(0.0) as `alias2`, " + "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, 0.0 as `alias2`, " + "sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); @@ -1043,11 +995,11 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "having msr12+roundedmsr2 <= 1000", conf); expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum((basecube.msr12)) " - + "as `alias2`, sum(0.0) as `alias3` FROM ", + + "as `alias2`, 0.0 as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum(0.0) as `alias2`, " + "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, 0.0 as `alias2`, " + "sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); @@ -1064,11 +1016,11 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "having msr12 > 2 and roundedmsr2 > 0 and msr12+roundedmsr2 <= 1000", conf); expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum((basecube.msr12)) as `alias2`, " - + "sum(0.0) as `alias3` FROM ", + + "0.0 as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum(0.0) as `alias2`, " + "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, 0.0 as `alias2`, " + "sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE")); @@ -1086,11 +1038,11 @@ public class TestBaseCubeQueries extends TestQueryRewrite { + "having msr12 > 2 or roundedmsr2 > 0 or msr12+roundedmsr2 <= 1000", conf); expected1 = getExpectedQuery(cubeName, "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum((basecube.msr12)) as `alias2`, " - + "sum(0.0) as `alias3` FROM ", + + "0.0 as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact2_BASE")); expected2 = getExpectedQuery(cubeName, - "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, sum(0.0) as `alias2`, " + "SELECT (basecube.dim1) as `alias0`, (basecube.dim11) as `alias1`, 0.0 as `alias2`, " + "sum((basecube.msr2)) as `alias3` FROM ", null, " group by basecube.dim1, basecube.dim11", getWhereForDailyAndHourly2days(cubeName, "C1_testFact1_BASE"));
http://git-wip-us.apache.org/repos/asf/lens/blob/cb5e2a77/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBetweenTimeRangeWriter.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBetweenTimeRangeWriter.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBetweenTimeRangeWriter.java index 4331843..5c57781 100644 --- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBetweenTimeRangeWriter.java +++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBetweenTimeRangeWriter.java @@ -20,6 +20,7 @@ package org.apache.lens.cube.parse; import static java.util.Optional.*; + import static org.apache.lens.cube.metadata.DateFactory.*; import static org.apache.lens.cube.metadata.UpdatePeriod.DAILY; @@ -122,7 +123,7 @@ public class TestBetweenTimeRangeWriter extends TestTimeRangeWriter { @DataProvider public Object[][] getBoundTypes() { - return new Object[][]{{OPEN, OPEN}, {OPEN,CLOSED},{CLOSED,OPEN},{CLOSED,CLOSED}}; + return new Object[][]{{OPEN, OPEN}, {OPEN, CLOSED}, {CLOSED, OPEN}, {CLOSED, CLOSED}}; } @Test(dataProvider = "getBoundTypes") @@ -150,7 +151,8 @@ public class TestBetweenTimeRangeWriter extends TestTimeRangeWriter { } - private void validateBetweenBoundTypes(String whereClause, DateFormat format, int testStartOffset, int testEndOffset) { + private void validateBetweenBoundTypes(String whereClause, DateFormat format, + int testStartOffset, int testEndOffset) { String expected = getBetweenClause("test", "dt", getDateWithOffset(DAILY, testStartOffset), getDateWithOffset(DAILY, testEndOffset), ofNullable(format).orElseGet(DAILY::format)); Assert.assertEquals(expected, whereClause); http://git-wip-us.apache.org/repos/asf/lens/blob/cb5e2a77/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java index 2bf1ef8..9fbeb41 100644 --- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java +++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestBridgeTableQueries.java @@ -206,7 +206,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { String query = "select usersports.name, msr2, msr12 from basecube where " + TWO_DAYS_RANGE; String hqlQuery = rewrite(query, hConf); String expected1 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, sum(0.0) as `alias2` FROM ", + "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, 0.0 as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as balias0" + " from " @@ -215,7 +215,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + " group by user_interests.user_id) usersports" + " on userdim.id = usersports.user_id ", null, "group by usersports.balias0", null, getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base")); String expected2 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr12)) as `alias2` FROM ", + "SELECT (usersports.balias0) as `alias0`, 0.0 as `alias1`, sum((basecube.msr12)) as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as balias0" + " from " @@ -238,7 +238,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { query = "select sports, msr2, msr12 from basecube where " + TWO_DAYS_RANGE; hqlQuery = rewrite(query, hConf); expected1 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, sum(0.0) as `alias2` FROM ", + "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, 0.0 as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as balias0" + " from " + getDbName() + "c1_user_interests_tbl user_interests" + " join " + getDbName() @@ -246,7 +246,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + " group by user_interests.user_id) usersports" + " on userdim.id = usersports.user_id ", null, "group by usersports.balias0", null, getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base")); expected2 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr12)) " + "SELECT (usersports.balias0) as `alias0`, 0.0 as `alias1`, sum((basecube.msr12)) " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as balias0" + " from " @@ -625,7 +625,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + " and usersports.name = 'CRICKET'"; String hqlQuery = rewrite(query, hConf); String expected1 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, sum(0.0) " + "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, 0.0 " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as balias0" + " from " @@ -635,7 +635,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { " and array_contains(usersports.balias0,'CRICKET') group by usersports.balias0", null, getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base")); String expected2 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr12)) " + "SELECT (usersports.balias0) as `alias0`, 0.0 as `alias1`, sum((basecube.msr12)) " + "as `alias2` FROM", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as balias0" + " from " @@ -656,7 +656,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { query = "select sports, msr2, msr12 from basecube where " + TWO_DAYS_RANGE + " and sports = 'CRICKET'"; hqlQuery = rewrite(query, hConf); expected1 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, sum(0.0) " + "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, 0.0 " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as balias0" + " from " @@ -666,7 +666,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { "and array_contains(usersports.balias0,'CRICKET') group by usersports.balias0", null, getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base")); expected2 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr12)) " + "SELECT (usersports.balias0) as `alias0`, 0.0 as `alias1`, sum((basecube.msr12)) " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as balias0" + " from " @@ -693,7 +693,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + " and usersports.name = 'CRICKET,FOOTBALL'"; String hqlQuery = rewrite(query, conf); String expected1 = getExpectedQuery("basecube", - "SELECT (usersports.name) as `alias0`, sum((basecube.msr2)) as `alias1`, sum(0.0) as `alias2` FROM ", + "SELECT (usersports.name) as `alias0`, sum((basecube.msr2)) as `alias1`, 0.0 as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as name" + " from " + getDbName() + "c1_user_interests_tbl user_interests" + " join " + getDbName() @@ -702,7 +702,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { " and usersports.name = 'CRICKET,FOOTBALL' group by usersports.name", null, getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base")); String expected2 = getExpectedQuery("basecube", - "SELECT (usersports.name) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr12)) as `alias2` FROM ", + "SELECT (usersports.name) as `alias0`, 0.0 as `alias1`, sum((basecube.msr12)) as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as name" + " from " @@ -724,7 +724,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + " and sports = 'CRICKET,FOOTBALL'"; hqlQuery = rewrite(query, conf); expected1 = getExpectedQuery("basecube", - "SELECT (usersports.name) as `alias0`, sum((basecube.msr2)) as `alias1`, sum(0.0) " + "SELECT (usersports.name) as `alias0`, sum((basecube.msr2)) as `alias1`, 0.0 " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as name" + " from " @@ -734,7 +734,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { " and usersports.name = 'CRICKET,FOOTBALL' group by usersports.name", null, getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base")); expected2 = getExpectedQuery("basecube", - "SELECT (usersports.name) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr12)) " + "SELECT (usersports.name) as `alias0`, 0.0 as `alias1`, sum((basecube.msr12)) " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as name" + " from " @@ -878,7 +878,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + " and usersports.name in ('CRICKET', 'FOOTBALL')"; String hqlQuery = rewrite(query, hConf); String expected1 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, sum(0.0) " + "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, 0.0 " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id, collect_set(substr(usersports.name, 3)) as balias0, " @@ -890,7 +890,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + " group by usersports.balias0", null, getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base")); String expected2 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr12)) as `alias2` FROM " + "SELECT (usersports.balias0) as `alias0`, 0.0 as `alias1`, sum((basecube.msr12)) as `alias2` FROM " , " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id, collect_set(substr(usersports.name, 3)) as balias0, " @@ -915,7 +915,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + "('CRICKET', 'FOOTBALL')"; hqlQuery = rewrite(query, hConf); expected1 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, sum(0.0) " + "SELECT (usersports.balias0) as `alias0`, sum((basecube.msr2)) as `alias1`, 0.0 " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id, collect_set(substr((usersports.name), 3)) as balias0, " @@ -927,7 +927,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + " group by usersports.balias0", null, getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base")); expected2 = getExpectedQuery("basecube", - "SELECT (usersports.balias0) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr12)) " + "SELECT (usersports.balias0) as `alias0`, 0.0 as `alias1`, sum((basecube.msr12)) " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id, collect_set(substr((usersports.name), 3)) as balias0," @@ -957,7 +957,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + " and usersports.name = 'CRICKET,FOOTBALL'"; String hqlQuery = rewrite(query, conf); String expected1 = getExpectedQuery("basecube", - "SELECT substr((usersports.name), 3) as `alias0`, sum((basecube.msr2)) as `alias1`, sum(0.0) " + "SELECT substr((usersports.name), 3) as `alias0`, sum((basecube.msr2)) as `alias1`, 0.0 " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as name" + " from " @@ -967,7 +967,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { " and usersports.name = 'CRICKET,FOOTBALL' group by substr(usersports.name, 3)", null, getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base")); String expected2 = getExpectedQuery("basecube", - "SELECT substr((usersports.name), 3) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr12)) " + "SELECT substr((usersports.name), 3) as `alias0`, 0.0 as `alias1`, sum((basecube.msr12)) " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as name" + " from " @@ -990,7 +990,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { + "'CRICKET,FOOTBALL'"; hqlQuery = rewrite(query, conf); expected1 = getExpectedQuery("basecube", - "SELECT substr((usersports.name), 3) as `alias0`, sum((basecube.msr2)) as `alias1`, sum(0.0) " + "SELECT substr((usersports.name), 3) as `alias0`, sum((basecube.msr2)) as `alias1`, 0.0 " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as name" + " from " @@ -1000,7 +1000,7 @@ public class TestBridgeTableQueries extends TestQueryRewrite { " and usersports.name = 'CRICKET,FOOTBALL' group by substr(usersports.name, 3)", null, getWhereForDailyAndHourly2days("basecube", "c1_testfact1_base")); expected2 = getExpectedQuery("basecube", - "SELECT substr((usersports.name), 3) as `alias0`, sum(0.0) as `alias1`, sum((basecube.msr12)) " + "SELECT substr((usersports.name), 3) as `alias0`, 0.0 as `alias1`, sum((basecube.msr12)) " + "as `alias2` FROM ", " join " + getDbName() + "c1_usertable userdim ON basecube.userid = userdim.id " + " join (select user_interests.user_id as user_id,collect_set(usersports.name) as name" + " from " http://git-wip-us.apache.org/repos/asf/lens/blob/cb5e2a77/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java index 6c9afdd..bab1080 100644 --- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java +++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java @@ -30,7 +30,6 @@ import static org.testng.Assert.*; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; -import java.util.stream.Stream; import org.apache.lens.cube.error.LensCubeErrorCode; import org.apache.lens.cube.error.NoCandidateDimAvailableException; @@ -52,7 +51,6 @@ import org.apache.hadoop.hive.ql.processors.CommandProcessorResponse; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; -import com.google.common.base.Splitter; import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import lombok.extern.slf4j.Slf4j; @@ -79,8 +77,8 @@ public class TestCubeRewriter extends TestQueryRewrite { @Test public void testQueryWithNow() throws Exception { - LensException e = getLensExceptionInRewrite( // rewrites with original time_range_in - "select SUM(msr2) from testCube where " + getTimeRangeString("NOW - 2DAYS", "NOW"), getConf()); + LensException e = getLensExceptionInRewrite( + "select SUM(msr2) from testCube where " + getTimeRangeString("NOW - 2DAYS", "NOW"), getConf()); assertEquals(e.getErrorCode(), LensCubeErrorCode.NO_CANDIDATE_FACT_AVAILABLE.getLensErrorInfo().getErrorCode()); } @@ -1059,7 +1057,7 @@ public class TestCubeRewriter extends TestQueryRewrite { pr2.addPruningMsg(new CubeDimensionTable(new Table("test", "citydim")), CandidateTablePruneCause.expressionNotEvaluable("testexp1", "testexp2")); NoCandidateDimAvailableException ne2 = new NoCandidateDimAvailableException(pr2); - assertEquals(ne1.compareTo(ne2), -12); + assertEquals(ne1.compareTo(ne2), -7); } @Test @@ -1089,6 +1087,7 @@ public class TestCubeRewriter extends TestQueryRewrite { new HashMap<String, CandidateTablePruneCause.CandidateTablePruneCode>() { { put("c1_statetable", CandidateTablePruneCause.CandidateTablePruneCode.NO_PARTITIONS); + put("c6_statetable", CandidateTablePruneCause.CandidateTablePruneCode.UNSUPPORTED_STORAGE); } })) ); @@ -1391,7 +1390,7 @@ public class TestCubeRewriter extends TestQueryRewrite { Date nextToNextDay = DateUtils.addDays(nextDay, 1); HashSet<String> storageTables = Sets.newHashSet(); for (StorageCandidate sc : CandidateUtil.getStorageCandidates(candidate)) { - storageTables.add(sc.getName()); + storageTables.add(sc.getStorageTable()); } TreeSet<FactPartition> expectedPartsQueried = Sets.newTreeSet(); for (TimePartition p : Iterables.concat( http://git-wip-us.apache.org/repos/asf/lens/blob/cb5e2a77/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 7874a66..d97c0e6 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,13 +19,13 @@ package org.apache.lens.cube.parse; -import static com.google.common.collect.Lists.newArrayList; -import static com.google.common.collect.Sets.newHashSet; - import static org.apache.lens.cube.metadata.DateFactory.*; import static org.apache.lens.cube.parse.CandidateTablePruneCause.columnNotFound; import static org.apache.lens.cube.parse.CubeTestSetup.*; +import static com.google.common.collect.Lists.newArrayList; +import static com.google.common.collect.Sets.newHashSet; + import java.util.*; import org.apache.lens.cube.error.NoCandidateFactAvailableException; @@ -194,7 +194,7 @@ public class TestDenormalizationResolver extends TestQueryRewrite { "select dim2big2, max(msr3)," + " msr2 from testCube" + " where " + TWO_DAYS_RANGE, tconf); NoCandidateFactAvailableException ne = (NoCandidateFactAvailableException) e; PruneCauses.BriefAndDetailedError error = ne.getJsonMessage(); - Assert.assertEquals(error.getBrief(), CandidateTablePruneCode.UNSUPPORTED_STORAGE.errorFormat); + Assert.assertEquals(error.getBrief(), CandidateTablePruneCode.INVALID_DENORM_TABLE.errorFormat); Map<HashSet<String>, List<CandidateTablePruneCause>> enhanced = error.enhanced(); Map<Set<String>, List<CandidateTablePruneCause>> expected = Maps.newHashMap(); @@ -343,7 +343,7 @@ public class TestDenormalizationResolver extends TestQueryRewrite { CubeQueryContext cubeql = rewriteCtx("select citydim.zipcode, citydim.statename from" + " citydim", tConf); Set<String> candidateDims = new HashSet<>(); for (CandidateDim cdim : cubeql.getCandidateDims().get(cubeql.getMetastoreClient().getDimension("citydim"))) { - candidateDims.add(cdim.getName()); + candidateDims.add(cdim.getStorageTable()); } // city_table2 contains stateid, but not zipcode - it should have been removed. Assert.assertFalse(candidateDims.contains("city_table2")); http://git-wip-us.apache.org/repos/asf/lens/blob/cb5e2a77/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 d4ffefe..d3938c1 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,23 +19,14 @@ package org.apache.lens.cube.parse; -import static com.google.common.collect.Sets.newHashSet; 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.PART_COL_DOES_NOT_EXIST; -import static - org.apache.lens.cube.parse.CandidateTablePruneCause.CandidateTablePruneCode.STORAGE_NOT_AVAILABLE_IN_RANGE; import static org.apache.lens.cube.parse.CandidateTablePruneCause.CandidateTablePruneCode.TIME_RANGE_NOT_ANSWERABLE; import static org.apache.lens.cube.parse.CandidateTablePruneCause.CandidateTablePruneCode.UNSUPPORTED_STORAGE; import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; import java.util.*; -import java.util.stream.Collectors; -import org.apache.lens.cube.error.NoCandidateFactAvailableException; -import org.apache.lens.cube.metadata.TimeRange; import org.apache.lens.server.api.LensConfConstants; import org.apache.lens.server.api.error.LensException; @@ -47,7 +38,6 @@ import org.joda.time.DateTime; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; -import com.google.common.collect.Sets; public class TestTimeRangeResolver extends TestQueryRewrite { @@ -72,16 +62,9 @@ public class TestTimeRangeResolver extends TestQueryRewrite { @Test public void testFactValidity() throws ParseException, LensException, HiveException, ClassNotFoundException { - LensException e = - getLensExceptionInRewrite("select msr2 from " + cubeName + " where " + LAST_YEAR_RANGE, - getConf()); - NoCandidateFactAvailableException ne = (NoCandidateFactAvailableException) e; - PruneCauses.BriefAndDetailedError causes = ne.getJsonMessage(); - assertTrue(causes.getBrief().contains("No storages available for all of these time ranges: " - + "[dt [2016-01-01-00:00:00,000 to 2017-01-01-00:00:00,000)]"), causes.getBrief()); - assertEquals(causes.getDetails().values().stream().flatMap(Collection::stream) - .map(CandidateTablePruneCause::getCause).collect(Collectors.toSet()), newHashSet(COLUMN_NOT_FOUND, - PART_COL_DOES_NOT_EXIST, UNSUPPORTED_STORAGE, STORAGE_NOT_AVAILABLE_IN_RANGE)); + String query = "select msr2 from " + cubeName + " where " + LAST_YEAR_RANGE; + LensException e = getLensExceptionInRewrite(query, getConf()); + assertEquals(e.getErrorInfo().getErrorName(), "NO_UNION_CANDIDATE_AVAILABLE"); } @Test @@ -118,14 +101,9 @@ public class TestTimeRangeResolver extends TestQueryRewrite { Configuration conf = getConf(); DateTime dt = new DateTime(1990, 3, 23, 12, 0, 0, 0); conf.setLong(LensConfConstants.QUERY_CURRENT_TIME_IN_MILLIS, dt.getMillis()); - NoCandidateFactAvailableException e = - (NoCandidateFactAvailableException)getLensExceptionInRewrite( - "select msr12 from basecube where time_range_in(d_time, 'now.day-275days','now')", conf); - TimeRange timeRange = e.getCubeQueryContext().getTimeRanges().get(0); - // Month starts from zero. - Calendar from = new GregorianCalendar(1989, 5, 21, 0, 0, 0); - assertEquals(timeRange.getFromDate(), from.getTime()); - assertEquals(timeRange.getToDate(), dt.toDate()); + String query = "select msr12 from basecube where time_range_in(d_time, 'now.day-275days','now')"; + LensException e = getLensExceptionInRewrite(query, conf); + assertEquals(e.getMessage(), "NO_CANDIDATE_FACT_AVAILABLE[Range not answerable]"); } /** @@ -137,7 +115,7 @@ public class TestTimeRangeResolver extends TestQueryRewrite { private static List<CandidateTablePruneCause> findPruningMessagesForStorage(String stoargeName, PruneCauses<StorageCandidate> allStoragePruningMsgs) { for (StorageCandidate sc : allStoragePruningMsgs.keySet()) { - if (sc.getName().equals(stoargeName)) { + if (sc.getStorageTable().equals(stoargeName)) { return allStoragePruningMsgs.get(sc); } } http://git-wip-us.apache.org/repos/asf/lens/blob/cb5e2a77/lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionAndJoinCandidates.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionAndJoinCandidates.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionAndJoinCandidates.java index f5f7f3e..0119f2e 100644 --- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionAndJoinCandidates.java +++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionAndJoinCandidates.java @@ -25,8 +25,6 @@ import static org.apache.lens.cube.parse.TestCubeRewriter.compareContains; import static org.testng.Assert.*; -import jodd.util.StringUtil; -import org.apache.hadoop.util.StringUtils; import org.apache.lens.server.api.LensServerAPITestUtil; import org.apache.lens.server.api.error.LensException; @@ -36,6 +34,8 @@ import org.apache.hadoop.hive.ql.parse.ParseException; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; +import jodd.util.StringUtil; + public class TestUnionAndJoinCandidates extends TestQueryRewrite { private Configuration conf; @@ -76,7 +76,7 @@ public class TestUnionAndJoinCandidates extends TestQueryRewrite { assertEquals(StringUtil.count(rewrittenQuery, "sum((basecube.union_join_ctx_msr1))"), 2); } - @Test + @Test public void testFinalCandidateRewrittenQuery() throws ParseException, LensException { try { // Query with non projected measure in having clause. @@ -85,12 +85,12 @@ public class TestUnionAndJoinCandidates extends TestQueryRewrite { String whereCond = " union_join_ctx_zipcode = 'a' and union_join_ctx_cityid = 'b' and " + "(" + TWO_MONTHS_RANGE_UPTO_DAYS + ")"; String rewrittenQuery = rewrite("select " + colsSelected + " from basecube where " + whereCond + having, conf); - String expectedInnerSelect1 = "SELECT (basecube.union_join_ctx_cityid) as `alias0`, sum(0.0) as `alias1`, " + String expectedInnerSelect1 = "SELECT (basecube.union_join_ctx_cityid) as `alias0`, 0.0 as `alias1`, " + "sum((basecube.union_join_ctx_msr1)) as `alias2` FROM TestQueryRewrite.c1_union_join_ctx_fact1 basecube "; - String expectedInnerSelect2 = "SELECT (basecube.union_join_ctx_cityid) as `alias0`, sum(0.0) as `alias1`, " + String expectedInnerSelect2 = "SELECT (basecube.union_join_ctx_cityid) as `alias0`, 0.0 as `alias1`, " + "sum((basecube.union_join_ctx_msr1)) as `alias2` FROM TestQueryRewrite.c1_union_join_ctx_fact2 basecube "; String expectedInnerSelect3 = " SELECT (basecube.union_join_ctx_cityid) as `alias0`, " - + "sum((basecube.union_join_ctx_msr2)) as `alias1`, sum(0.0) as `alias2` " + + "sum((basecube.union_join_ctx_msr2)) as `alias1`, 0.0 as `alias2` " + "FROM TestQueryRewrite.c1_union_join_ctx_fact3 basecube "; String outerHaving = "HAVING (sum((basecube.alias2)) > 100)"; compareContains(expectedInnerSelect1, rewrittenQuery); @@ -111,14 +111,14 @@ public class TestUnionAndJoinCandidates extends TestQueryRewrite { expectedInnerSelect1 = "SELECT (basecube.union_join_ctx_cityid) as `alias0`, (cubecityjoinunionctx.name) " + "as `alias1`, case when (basecube.union_join_ctx_cityid) is null then 0 else " + "(basecube.union_join_ctx_cityid) end as `alias2`, sum((basecube.union_join_ctx_msr1)) as `alias3`, " - + "sum(0.0) as `alias4` FROM TestQueryRewrite.c1_union_join_ctx_fact1 basecube"; + + "0.0 as `alias4` FROM TestQueryRewrite.c1_union_join_ctx_fact1 basecube"; expectedInnerSelect2 = "SELECT (basecube.union_join_ctx_cityid) as `alias0`, (cubecityjoinunionctx.name) " + "as `alias1`, case when (basecube.union_join_ctx_cityid) is null then 0 else " + "(basecube.union_join_ctx_cityid) end as `alias2`, sum((basecube.union_join_ctx_msr1)) as `alias3`, " - + "sum(0.0) as `alias4` FROM TestQueryRewrite.c1_union_join_ctx_fact2"; + + "0.0 as `alias4` FROM TestQueryRewrite.c1_union_join_ctx_fact2"; expectedInnerSelect3 = "SELECT (basecube.union_join_ctx_cityid) as `alias0`, (cubecityjoinunionctx.name) " + "as `alias1`, case when (basecube.union_join_ctx_cityid) is null then 0 else " - + "(basecube.union_join_ctx_cityid) end as `alias2`, sum(0.0) as `alias3`, " + + "(basecube.union_join_ctx_cityid) end as `alias2`, 0.0 as `alias3`, " + "sum((basecube.union_join_ctx_msr2)) as `alias4` FROM TestQueryRewrite.c1_union_join_ctx_fact3"; String outerGroupBy = "GROUP BY (basecube.alias0), (basecube.alias1), (basecube.alias2)"; compareContains(outerSelect, rewrittenQuery); @@ -142,12 +142,12 @@ public class TestUnionAndJoinCandidates extends TestQueryRewrite { + "as `(sum(union_join_ctx_msr1) + 10)` FROM "; expectedInnerSelect1 = "SELECT (basecube.union_join_ctx_cityid) as `alias0`, " + "(cubecityjoinunionctx.name) as `alias1`, sum((basecube.union_join_ctx_msr1)) as `alias2`, " - + "sum(0.0) as `alias3`, sum(0.0) as `alias4` FROM"; + + "0.0 as `alias3`, 0.0 as `alias4` FROM"; expectedInnerSelect2 = "SELECT (basecube.union_join_ctx_cityid) as `alias0`, " + "(cubecityjoinunionctx.name) as `alias1`, sum((basecube.union_join_ctx_msr1)) as `alias2`, " - + "sum(0.0) as `alias3`, sum(0.0) as `alias4` FROM"; + + "0.0 as `alias3`, 0.0 as `alias4` FROM"; expectedInnerSelect3 = "SELECT (basecube.union_join_ctx_cityid) as `alias0`, (cubecityjoinunionctx.name) " - + "as `alias1`, sum(0.0) as `alias2`, sum((basecube.union_join_ctx_msr2)) as `alias3`, " + + "as `alias1`, 0.0 as `alias2`, sum((basecube.union_join_ctx_msr2)) as `alias3`, " + "sum(case when ((basecube.union_join_ctx_msr2) > 0) then (basecube.union_join_ctx_msr2) else 0 end) " + "as `alias4` FROM"; String innerGroupBy = "GROUP BY (basecube.union_join_ctx_cityid), (cubecityjoinunionctx.name)";
